(function() {
	(function() {
		var g = void 0,
			aa = !0,
			h = null,
			i = !1,
			j = google_exportSymbol,
			k = Number,
			l = Error,
			m = parseInt,
			o = document,
			ba = isNaN,
			q = google_exportProperty,
			r = Array,
			t = Math;

		function u(a, b) {
			return a.format = b
		}

		function ca(a, b) {
			return a.type = b
		}
		var x = "push",
			da = "test",
			y = "round",
			ea = "slice",
			z = "replace",
			A = "floor",
			C = "charAt",
			fa = "indexOf",
			D = "format",
			ga = "getColumnType",
			ha = "getHours",
			ia = "getValue",
			ja = "getTime",
			ka = "getElementsByTagName",
			la = "substr",
			E = "toString",
			ma = "getNumberOfRows",
			F = "length",
			na = "propertyIsEnumerable",
			G = "prototype",
			oa = "setFormattedValue",
			H = "call",
			pa = "setProperty",
			I = "substring",
			qa = "apply",
			J = "join",
			sa = "toLowerCase",
			ta = "getTimezoneOffset",
			K = "",
			ua = " ",
			va = '" />',
			wa = "#",
			xa = "#$1$1$2$2$3$3",
			ya = "$1",
			za = "%",
			Aa = "'",
			Ba = "''",
			Ca = "(",
			Da = "(\\d*)(\\D*)",
			Ea = ")",
			Fa = "+",
			Ga = ",",
			L = "-",
			M = ".",
			Ha = '.png" height="12" width="',
			Ia = "/static/modules/gviz/",
			Ja = "/util/bar_",
			Ka = "/util/format.css",
			N = "0",
			La = "0000000000000000",
			Ma = "1",
			Na = "1.0",
			Oa = ":",
			Pa = ";",
			Qa = "</span>\u00a0",
			Ra = '<img style="padding: 0" src="',
			Sa = '<span style="padding: 0; float: left; white-space: nowrap;">',
			Ta = "E",
			Ua = "Etc/GMT",
			Va = "G",
			Wa = "GMT",
			Xa = "H",
			Ya = "K",
			Za = "L",
			$a = "LINK",
			bb = "M",
			cb = "Q",
			db = "S",
			eb = "Too many percent/permill",
			fb = "UTC",
			gb = "Z",
			hb = "[object Array]",
			ib = "[object Function]",
			jb = "[object Window]",
			kb = "\\",
			lb = "_bar_format_old_value",
			mb = "a",
			nb = "addGradientRange",
			ob = "array",
			pb = "b",
			qb = "background-color:",
			rb = "body",
			sb = "boolean",
			tb = "c",
			ub = "call",
			vb = "className",
			wb = "color:",
			xb = "d",
			yb = "date",
			zb = "datetime",
			Ab = "decimalSymbol",
			Bb = "false",
			O = "format",
			Cb = "formatType",
			Db = "fractionDigits",
			Eb = "full",
			Fb = "function",
			Gb = "g",
			Hb = "google-visualization-formatters-arrow-dr",
			Ib = "google-visualization-formatters-arrow-empty",
			Jb = "google-visualization-formatters-arrow-ug",
			Kb = "google.loader.GoogleApisBase",
			Lb = "google.visualization.Version",
			Mb = "groupingSymbol",
			Nb = "h",
			Ob = "head",
			Pb = "hex",
			Qb = "html",
			Rb = "http://ajax.googleapis.com/ajax",
			Sb = "k",
			Tb = "link",
			Ub = "long",
			Vb = "m",
			Wb = "medium",
			Xb = "named",
			Yb = "native code",
			Zb = "negativeColor",
			$b = "negativeParens",
			ac = "none",
			bc = "null",
			P = "number",
			cc = "object",
			dc = "pattern",
			ec = "prefix",
			gc = "r",
			hc = "rgb",
			ic = "s",
			jc = "scaleFactor",
			kc = "short",
			lc = "solid",
			mc = "splice",
			nc = "string",
			oc = "style",
			pc = "stylesheet",
			qc = "suffix",
			rc = "text/css",
			sc = "time",
			tc = "timeZone",
			uc = "timeofday",
			vc = "transparent",
			wc = "true",
			xc = "v",
			yc = "valueType",
			zc = "w",
			Ac = "y",
			Bc = "z",
			Cc = "\u00a0",
			Dc = "\u00a4",
			Ec = "\u2030",
			R, Fc = this;

		function Gc(a, b) {
			for (var c = a.split(M), d = b || Fc, e; e = c.shift();)
				if (S(d[e])) d = d[e];
				else return h;
			return d
		}

		function Hc(a) {
			var b = typeof a;
			if (b == cc)
				if (a) {
					if (a instanceof r) return ob;
					if (a instanceof Object) return b;
					var c = Object[G][E][H](a);
					if (c == jb) return cc;
					if (c == hb || typeof a[F] == P && "undefined" != typeof a.splice && "undefined" !=
						typeof a[na] && !a[na](mc)) return ob;
					if (c == ib || "undefined" != typeof a[H] && "undefined" != typeof a[na] && !a[na](ub))
						return Fb
				} else return bc;
			else if (b == Fb && "undefined" == typeof a[H]) return cc;
			return b
		}

		function S(a) {
			return a != h
		}

		function Ic(a) {
			var b = Hc(a);
			return (b == cc || b == ob || b == Fb) && typeof a.getFullYear == Fb
		}

		function Jc(a, b, c) {
			return a[H][qa](a.bind, arguments)
		}

		function Kc(a, b, c) {
			if (!a) throw l();
			if (2 < arguments[F]) {
				var d = r[G][ea][H](arguments, 2);
				return function() {
					var c = r[G][ea][H](arguments);
					r[G].unshift[qa](c, d);
					return a[qa](b, c)
				}
			}
			return function() {
				return a[qa](b, arguments)
			}
		}

		function Lc(a, b, c) {
			Lc = Function[G].bind && -1 != Function[G].bind[E]()[fa](Yb) ? Jc : Kc;
			return Lc[qa](h, arguments)
		}

		function Mc(a, b) {
			var c = r[G][ea][H](arguments, 1);
			return function() {
				var b = r[G][ea][H](arguments);
				b.unshift[qa](b, c);
				return a[qa](this, b)
			}
		}

		function Nc(a, b) {
			function c() {}
			c.prototype = b[G];
			a.Zb = b[G];
			a.prototype = new c
		};

		function Oc(a) {
			this.L = a || {};
			a: {
				for (var b = Pc() + Ka, a = o[ka]($a), c = 0; c < a[F]; c++)
					if (a[c] && a[c].href && a[c].href == b) break a;a = o.createElement(Tb);a.href = b;a
				.rel = pc;ca(a, rc);
				if (0 == o[ka](Ob)[F]) {
					var b = o[ka](Qb)[0],
						c = o[ka](rb)[0],
						d = o.createElement(Ob);
					b.insertBefore(d, c)
				}
				o[ka](Ob)[0].appendChild(a)
			}
		}
		u(Oc[G], function(a, b) {
			if (a[ga](b) == P)
				for (var c = this.L.base || 0, d = 0; d < a[ma](); d++) {
					var e = a[ia](d, b),
						f = h,
						f = e < c ? Hb : e > c ? Jb : Ib;
					a[pa](d, b, vb, f)
				}
		});

		function T(a, b, c) {
			a = c !== g ? a.toFixed(c) : K + a;
			c = a[fa](M); - 1 == c && (c = a[F]);
			b = t.max(0, b - c);
			return r(b + 1)[J](N) + a
		}

		function Qc(a, b) {
			for (var c = 0, d = (K + a)[z](/^[\s\xa0]+|[\s\xa0]+$/g, K).split(M), e = (K + b)[z](
					/^[\s\xa0]+|[\s\xa0]+$/g, K).split(M), f = t.max(d[F], e[F]), n = 0; 0 == c && n < f; n++) {
				var p = d[n] || K,
					B = e[n] || K,
					Q = RegExp(Da, Gb),
					W = RegExp(Da, Gb);
				do {
					var v = Q.exec(p) || [K, K, K],
						s = W.exec(B) || [K, K, K];
					if (0 == v[0][F] && 0 == s[0][F]) break;
					c = ((0 == v[1][F] ? 0 : m(v[1], 10)) < (0 == s[1][F] ? 0 : m(s[1], 10)) ? -1 : (0 == v[1][
						F] ? 0 : m(v[1], 10)) > (0 == s[1][F] ? 0 : m(s[1], 10)) ? 1 : 0) || ((0 == v[2][
						F]) < (0 == s[2][F]) ? -1 : (0 == v[2][F]) > (0 == s[2][F]) ? 1 : 0) || (v[2] < s[
						2] ? -1 : v[2] > s[2] ?
						1 : 0)
				} while (0 == c)
			}
			return c
		};
		var Rc = {
			aliceblue: "#f0f8ff",
			antiquewhite: "#faebd7",
			aqua: "#00ffff",
			aquamarine: "#7fffd4",
			azure: "#f0ffff",
			beige: "#f5f5dc",
			bisque: "#ffe4c4",
			black: "#000000",
			blanchedalmond: "#ffebcd",
			blue: "#0000ff",
			blueviolet: "#8a2be2",
			brown: "#a52a2a",
			burlywood: "#deb887",
			cadetblue: "#5f9ea0",
			chartreuse: "#7fff00",
			chocolate: "#d2691e",
			coral: "#ff7f50",
			cornflowerblue: "#6495ed",
			cornsilk: "#fff8dc",
			crimson: "#dc143c",
			cyan: "#00ffff",
			darkblue: "#00008b",
			darkcyan: "#008b8b",
			darkgoldenrod: "#b8860b",
			darkgray: "#a9a9a9",
			darkgreen: "#006400",
			darkgrey: "#a9a9a9",
			darkkhaki: "#bdb76b",
			darkmagenta: "#8b008b",
			darkolivegreen: "#556b2f",
			darkorange: "#ff8c00",
			darkorchid: "#9932cc",
			darkred: "#8b0000",
			darksalmon: "#e9967a",
			darkseagreen: "#8fbc8f",
			darkslateblue: "#483d8b",
			darkslategray: "#2f4f4f",
			darkslategrey: "#2f4f4f",
			darkturquoise: "#00ced1",
			darkviolet: "#9400d3",
			deeppink: "#ff1493",
			deepskyblue: "#00bfff",
			dimgray: "#696969",
			dimgrey: "#696969",
			dodgerblue: "#1e90ff",
			firebrick: "#b22222",
			floralwhite: "#fffaf0",
			forestgreen: "#228b22",
			fuchsia: "#ff00ff",
			gainsboro: "#dcdcdc",
			ghostwhite: "#f8f8ff",
			gold: "#ffd700",
			goldenrod: "#daa520",
			gray: "#808080",
			green: "#008000",
			greenyellow: "#adff2f",
			grey: "#808080",
			honeydew: "#f0fff0",
			hotpink: "#ff69b4",
			indianred: "#cd5c5c",
			indigo: "#4b0082",
			ivory: "#fffff0",
			khaki: "#f0e68c",
			lavender: "#e6e6fa",
			lavenderblush: "#fff0f5",
			lawngreen: "#7cfc00",
			lemonchiffon: "#fffacd",
			lightblue: "#add8e6",
			lightcoral: "#f08080",
			lightcyan: "#e0ffff",
			lightgoldenrodyellow: "#fafad2",
			lightgray: "#d3d3d3",
			lightgreen: "#90ee90",
			lightgrey: "#d3d3d3",
			lightpink: "#ffb6c1",
			lightsalmon: "#ffa07a",
			lightseagreen: "#20b2aa",
			lightskyblue: "#87cefa",
			lightslategray: "#778899",
			lightslategrey: "#778899",
			lightsteelblue: "#b0c4de",
			lightyellow: "#ffffe0",
			lime: "#00ff00",
			limegreen: "#32cd32",
			linen: "#faf0e6",
			magenta: "#ff00ff",
			maroon: "#800000",
			mediumaquamarine: "#66cdaa",
			mediumblue: "#0000cd",
			mediumorchid: "#ba55d3",
			mediumpurple: "#9370d8",
			mediumseagreen: "#3cb371",
			mediumslateblue: "#7b68ee",
			mediumspringgreen: "#00fa9a",
			mediumturquoise: "#48d1cc",
			mediumvioletred: "#c71585",
			midnightblue: "#191970",
			mintcream: "#f5fffa",
			mistyrose: "#ffe4e1",
			moccasin: "#ffe4b5",
			navajowhite: "#ffdead",
			navy: "#000080",
			oldlace: "#fdf5e6",
			olive: "#808000",
			olivedrab: "#6b8e23",
			orange: "#ffa500",
			orangered: "#ff4500",
			orchid: "#da70d6",
			palegoldenrod: "#eee8aa",
			palegreen: "#98fb98",
			paleturquoise: "#afeeee",
			palevioletred: "#d87093",
			papayawhip: "#ffefd5",
			peachpuff: "#ffdab9",
			peru: "#cd853f",
			pink: "#ffc0cb",
			plum: "#dda0dd",
			powderblue: "#b0e0e6",
			purple: "#800080",
			red: "#ff0000",
			rosybrown: "#bc8f8f",
			royalblue: "#4169e1",
			saddlebrown: "#8b4513",
			salmon: "#fa8072",
			sandybrown: "#f4a460",
			seagreen: "#2e8b57",
			seashell: "#fff5ee",
			sienna: "#a0522d",
			silver: "#c0c0c0",
			skyblue: "#87ceeb",
			slateblue: "#6a5acd",
			slategray: "#708090",
			slategrey: "#708090",
			snow: "#fffafa",
			springgreen: "#00ff7f",
			steelblue: "#4682b4",
			tan: "#d2b48c",
			teal: "#008080",
			thistle: "#d8bfd8",
			tomato: "#ff6347",
			turquoise: "#40e0d0",
			violet: "#ee82ee",
			wheat: "#f5deb3",
			white: "#ffffff",
			whitesmoke: "#f5f5f5",
			yellow: "#ffff00",
			yellowgreen: "#9acd32"
		};

		function Sc(a) {
			var b = {},
				a = K + a,
				c = a[C](0) == wa ? a : wa + a;
			if (Tc[da](c)) return b.k = Uc(c), ca(b, Pb), b;
			a: {
				var d = a.match(Vc);
				if (d) {
					var c = k(d[1]),
						e = k(d[2]),
						d = k(d[3]);
					if (0 <= c && 255 >= c && 0 <= e && 255 >= e && 0 <= d && 255 >= d) {
						c = [c, e, d];
						break a
					}
				}
				c = []
			}
			if (c[F]) return b.k = Wc(c[0], c[1], c[2]), ca(b, hc), b;
			if (Rc && (c = Rc[a[sa]()])) return b.k = c, ca(b, Xb), b;
			throw l(a + " is not a valid color string");
		}
		var Xc = /#(.)(.)(.)/;

		function Uc(a) {
			if (!Tc[da](a)) throw l(Aa + a + "' is not a valid hex color");
			4 == a[F] && (a = a[z](Xc, xa));
			return a[sa]()
		}

		function Yc(a) {
			a = Uc(a);
			return [m(a[la](1, 2), 16), m(a[la](3, 2), 16), m(a[la](5, 2), 16)]
		}

		function Wc(a, b, c) {
			a = k(a);
			b = k(b);
			c = k(c);
			if (ba(a) || 0 > a || 255 < a || ba(b) || 0 > b || 255 < b || ba(c) || 0 > c || 255 < c) throw l(
				'"(' + a + Ga + b + Ga + c + '") is not a valid RGB color');
			return wa + (1 == a[E](16)[F] ? N + a[E](16) : a[E](16)) + (1 == b[E](16)[F] ? N + b[E](16) : b[E](
				16)) + (1 == c[E](16)[F] ? N + c[E](16) : c[E](16))
		}
		var Tc = /^#(?:[0-9a-f]{3}){1,2}$/i,
			Vc = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;

		function Zc(a) {
			return a == ac || a == K || a == vc ? ac : Sc(a).k
		};

		function $c(a) {
			S(a) || (a = {});
			this.wa = ac;
			S(a.fill) && this.xa(a.fill);
			this.va = 1;
			S(a.Q) && this.ya(a.Q);
			this.sa = ac;
			S(a.stroke) && this.Aa(a.stroke);
			this.Ha = 1;
			S(a.Ga) && this.P(a.Ga);
			this.Fa = 1;
			S(a.R) && this.Ca(a.R);
			this.Ea = lc;
			S(a.Da) && this.Ba(a.Da);
			this.e = h;
			if (a.e) {
				var b = a.e,
					c = {},
					d;
				for (d in b) c[d] = b[d];
				this.e = c;
				this.e.ta = Zc(this.e.ta);
				this.e.ua = Zc(this.e.ua)
			}
			this.b = h;
			a.pattern && this.za(a.pattern)
		}
		R = $c[G];
		R.xa = function(a) {
			this.wa = Zc(a)
		};
		R.ya = function(a) {
			this.va = t.min(t.max(a, 0), 1)
		};
		R.Aa = function(a, b) {
			this.sa = Zc(a);
			S(b) && this.P(b)
		};
		R.P = function(a) {
			this.Ha = a
		};
		R.Ca = function(a) {
			this.Fa = t.min(t.max(a, 0), 1)
		};
		R.Ba = function(a) {
			this.Ea = a
		};
		R.za = function(a) {
			this.b = a
		};
		new $c({
			Q: 0,
			fill: "white",
			R: 0,
			stroke: "white"
		});

		function ad(a) {
			this.qa = a
		}

		function bd(a, b, c) {
			a = Gc(b, a);
			return S(a) && Hc(c) == Fb ? c(a) : a
		}
		R = ad[G];
		R.d = function(a, b, c) {
			for (var d = h, e = 0; e < this.qa[F]; e++) {
				a: {
					var d = this.qa[e],
						f = a,
						n = c;
					if (typeof f == nc) d = bd(d, f, n);
					else {
						for (var p = 0; p < f[F]; ++p) {
							var B = bd(d, f[p], n);
							if (S(B)) {
								d = B;
								break a
							}
						}
						d = h
					}
				}
				if (S(d)) return d
			}
			d = b;
			return d !== g ? d : h
		};

		function cd(a) {
			if (!S(a)) return h;
			if (typeof a == sb) return a;
			a = K + a;
			return a == Ma || a[sa]() == wc ? aa : a == N || a[sa]() == Bb ? i : h
		}
		R.La = function(a, b) {
			var c = this.Nb(a);
			if (S(c)) return c;
			b !== g || (b = i);
			return b
		};
		R.Nb = function(a) {
			return this.d(a, h, cd)
		};

		function dd(a) {
			if (!S(a)) return h;
			if (typeof a == P) return a;
			var a = K + a,
				b = k(a),
				a = 0 == b && /^[\s\xa0]*$/ [da](a) ? NaN : b;
			return ba(a) ? h : a
		}
		R.Na = function(a, b) {
			var c = this.X(a);
			if (S(c)) return c;
			b !== g || (b = 0);
			return b
		};
		R.X = function(a) {
			return this.d(a, h, dd)
		};

		function ed(a) {
			a = dd(a);
			return S(a) && 0 <= a ? a : h
		}
		R.Ma = function(a, b) {
			var c = this.Ob(a);
			if (S(c)) return c;
			b !== g || (b = 0);
			return b
		};
		R.Ob = function(a) {
			return this.d(a, h, ed)
		};

		function fd(a) {
			return !S(a) ? h : K + a
		}
		R.r = function(a, b) {
			b !== g || (b = K);
			return this.d(a, b, fd)
		};
		R.Pa = function(a) {
			return this.d(a, h, fd)
		};

		function gd(a) {
			return (a = fd(a)) ? a : h
		}
		R.Oa = function(a) {
			return this.d(a, h, gd)
		};

		function hd(a, b) {
			var c = fd(b),
				d;
			a: {
				for (d in a)
					if (a[d] == c) {
						d = aa;
						break a
					} d = i
			}
			return d ? c : h
		}
		R.W = function(a, b) {
			return this.d(a, h, Lc(hd, h, b))
		};
		var id, jd, kd, ld;

		function md() {
			return Fc.navigator ? Fc.navigator.userAgent : h
		}
		ld = kd = jd = id = i;
		var nd;
		if (nd = md()) {
			var od = Fc.navigator;
			id = 0 == nd[fa]("Opera");
			jd = !id && -1 != nd[fa]("MSIE");
			kd = !id && -1 != nd[fa]("WebKit");
			ld = !id && !kd && "Gecko" == od.product
		}
		var pd = jd,
			qd = ld,
			rd = kd,
			sd;
		a: {
			var td = K,
				ud;
			if (id && Fc.opera) var vd = Fc.opera.version,
				td = typeof vd == Fb ? vd() : vd;
			else if (qd ? ud = /rv\:([^\);]+)(\)|;)/ : pd ? ud = /MSIE\s+([^\);]+)(\)|;)/ : rd && (ud =
					/WebKit\/(\S+)/), ud) var wd = ud.exec(md()),
				td = wd ? wd[1] : K;
			if (pd) {
				var xd, yd = Fc.document;
				xd = yd ? yd.documentMode : g;
				if (xd > parseFloat(td)) {
					sd = K + xd;
					break a
				}
			}
			sd = td
		}
		var zd = sd,
			Ad = {},
			Bd = {};

		function Cd(a) {
			return Bd[a] || (Bd[a] = pd && o.documentMode && o.documentMode >= a)
		};
		!pd || Cd(9);
		!qd && !pd || pd && Cd(9) || qd && (Ad["1.9.1"] || (Ad["1.9.1"] = 0 <= Qc(zd, "1.9.1")));
		pd && (Ad["9"] || (Ad["9"] = 0 <= Qc(zd, "9")));

		function Pc() {
			var a = Gc(Kb);
			S(a) || (a = Rb);
			var b = Gc(Lb);
			S(b) || (b = Na);
			return a + Ia + b
		};

		function Dd(a) {
			this.L = a || {};
			Ed || (Ed = Pc() + Ja)
		}
		var Ed = h,
			Fd = {
				red: gc,
				blue: pb,
				green: Gb
			};

		function U(a, b, c) {
			0 < b && c[x](Ra, Ed, a, Ha, b, va)
		}
		u(Dd[G], function(a, b) {
			if (a[ga](b) == P) {
				var c = this.L,
					d = c.min,
					e = c.max,
					f = h;
				if (d == h || e == h) f = a.getColumnRange(b), e == h && (e = f.max), d == h && (d = t
					.min(0, f.min));
				if (d >= e) f = f || a.getColumnRange(b), e = f.max, d = f.min;
				d == e && (0 == d ? e = 1 : 0 < d ? d = 0 : e = 0);
				var f = e - d,
					n = c.base || 0,
					n = t.max(d, t.min(e, n)),
					p = c.width || 100,
					B = c.showValue;
				B == h && (B = aa);
				for (var Q = t[y]((n - d) / f * p), W = p - Q, v = 0; v < a[ma](); v++) {
					var s = a[ia](v, b),
						w = [],
						s = t.max(d, t.min(e, s)),
						ra = t.ceil((s - d) / f * p);
					w[x](Sa);
					U(ic, 1, w);
					var fc = Gd(c.colorPositive, pb),
						Td = Gd(c.colorNegative, gc),
						ab = c.drawZeroLine ? 1 : 0;
					0 < Q ? s < n ? (U(zc, ra, w), U(Td, Q - ra, w), 0 < ab && U(Bc, ab, w), U(zc, W,
						w)) : (U(zc, Q, w), 0 < ab && U(Bc, ab, w), U(fc, ra - Q, w), U(zc, p - ra,
						w)) : (U(fc, ra, w), U(zc, p - ra, w));
					U(ic, 1, w);
					s = a.getProperty(v, b, lb);
					s == h && (s = a.getFormattedValue(v, b), a[pa](v, b, lb, s));
					B && (w[x](Cc), w[x](s));
					w[x](Qa);
					a[oa](v, b, w[J](K))
				}
			}
		});

		function Gd(a, b) {
			a = (a || K)[sa]();
			return Fd[a] || b
		};

		function Hd(a, b, c, d) {
			Ic(a) && (a = a[ja]());
			Ic(b) && (b = b[ja]());
			Hc(a) == ob && (a = Id(a));
			Hc(b) == ob && (b = Id(b));
			this.ha = a;
			this.rb = b;
			this.pb = c;
			this.sb = d
		}
		Hd[G].contains = function(a) {
			var b = this.ha,
				c = this.rb;
			if (a == h) return b == h && c == h;
			Ic(a) ? a = a[ja]() : Hc(a) == ob && (a = Id(a));
			return (b == h || a >= b) && (c == h || a < c)
		};
		Hd[G].na = function() {
			return this.sb
		};

		function Jd(a, b, c, d, e) {
			Hd[H](this, a, b, c, K);
			this.I = b - a;
			if (0 >= this.I) this.I = 1;
			this.nb = Yc(Sc(d).k);
			this.ob = Yc(Sc(e).k)
		}
		Nc(Jd, Hd);
		Jd[G].na = function(a) {
			var b;
			b = this.nb;
			var c = this.ob,
				a = 1 - (a - this.ha) / this.I,
				a = t.min(t.max(a, 0), 1);
			b = [t[y](a * b[0] + (1 - a) * c[0]), t[y](a * b[1] + (1 - a) * c[1]), t[y](a * b[2] + (1 - a) *
				c[2])];
			return Wc(b[0], b[1], b[2])
		};

		function V() {
			this.w = []
		}
		V[G].addRange = function(a, b, c, d) {
			this.w[x](new Hd(a, b, c, d))
		};
		V[G].addGradientRange = function(a, b, c, d, e) {
			this.w[x](new Jd(a, b, c, d, e))
		};
		u(V[G], function(a, b) {
			var c = a[ga](b);
			if (c == P || c == nc || c == yb || c == zb || c == uc)
				for (c = 0; c < a[ma](); c++) {
					for (var d = a[ia](c, b), e = K, f = 0; f < this.w[F]; f++) {
						var n = this.w[f];
						if (n.contains(d)) {
							f = n.pb;
							d = n.na(d);
							f && (e += wb + f + Pa);
							d && (e += qb + d + Pa);
							break
						}
					}
					a[pa](c, b, oc, e)
				}
		});

		function Id(a) {
			return 36E5 * a[0] + 6E4 * a[1] + 1E3 * a[2] + (4 == a[F] ? a[3] : 0)
		};
		var X = {
			Db: ["\u516c\u5143\u524d", "\u516c\u5143"],
			Cb: ["\u516c\u5143\u524d", "\u516c\u5143"],
			ub: [Ma, "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
			xb: "1\u6708,2\u6708,3\u6708,4\u6708,5\u6708,6\u6708,7\u6708,8\u6708,9\u6708,10\u6708,11\u6708,12\u6708"
				.split(","),
			tb: "1\u6708,2\u6708,3\u6708,4\u6708,5\u6708,6\u6708,7\u6708,8\u6708,9\u6708,10\u6708,11\u6708,12\u6708"
				.split(","),
			wb: "\u4e00\u6708,\u4e8c\u6708,\u4e09\u6708,\u56db\u6708,\u4e94\u6708,\u516d\u6708,\u4e03\u6708,\u516b\u6708,\u4e5d\u6708,\u5341\u6708,\u5341\u4e00\u6708,\u5341\u4e8c\u6708"
				.split(","),
			vb: "1\u6708,2\u6708,3\u6708,4\u6708,5\u6708,6\u6708,7\u6708,8\u6708,9\u6708,10\u6708,11\u6708,12\u6708"
				.split(","),
			zb: "\u4e00\u6708,\u4e8c\u6708,\u4e09\u6708,\u56db\u6708,\u4e94\u6708,\u516d\u6708,\u4e03\u6708,\u516b\u6708,\u4e5d\u6708,\u5341\u6708,\u5341\u4e00\u6708,\u5341\u4e8c\u6708"
				.split(","),
			Hb: "\u661f\u671f\u65e5,\u661f\u671f\u4e00,\u661f\u671f\u4e8c,\u661f\u671f\u4e09,\u661f\u671f\u56db,\u661f\u671f\u4e94,\u661f\u671f\u516d"
				.split(","),
			Bb: "\u661f\u671f\u65e5,\u661f\u671f\u4e00,\u661f\u671f\u4e8c,\u661f\u671f\u4e09,\u661f\u671f\u56db,\u661f\u671f\u4e94,\u661f\u671f\u516d"
				.split(","),
			Gb: "\u5468\u65e5,\u5468\u4e00,\u5468\u4e8c,\u5468\u4e09,\u5468\u56db,\u5468\u4e94,\u5468\u516d"
				.split(","),
			Ab: "\u5468\u65e5,\u5468\u4e00,\u5468\u4e8c,\u5468\u4e09,\u5468\u56db,\u5468\u4e94,\u5468\u516d"
				.split(","),
			Wb: "\u65e5,\u4e00,\u4e8c,\u4e09,\u56db,\u4e94,\u516d".split(","),
			yb: "\u65e5,\u4e00,\u4e8c,\u4e09,\u56db,\u4e94,\u516d".split(","),
			Fb: ["1\u5b63", "2\u5b63", "3\u5b63", "4\u5b63"],
			Eb: ["\u7b2c1\u5b63\u5ea6", "\u7b2c2\u5b63\u5ea6", "\u7b2c3\u5b63\u5ea6",
				"\u7b2c4\u5b63\u5ea6"],
			Mb: ["\u4e0a\u5348",
				"\u4e0b\u5348"
			],
			ia: ["y\u5e74M\u6708d\u65e5EEEE", "y\u5e74M\u6708d\u65e5", "yyyy-M-d", "yy-M-d"],
			ja: ["zzzzah\u65f6mm\u5206ss\u79d2", "zah\u65f6mm\u5206ss\u79d2", "ah:mm:ss", "ah:mm"],
			Rb: 6,
			Yb: [5, 6],
			Sb: 2
		};

		function Kd() {}

		function Ld(a) {
			if (typeof a == P) {
				var b = new Kd;
				b.ka = a;
				var c;
				c = a;
				if (0 == c) c = Ua;
				else {
					var d = [Ua, 0 > c ? L : Fa];
					c = t.abs(c);
					d[x](t[A](c / 60) % 100);
					c %= 60;
					0 != c && d[x](Oa, T(c, 2));
					c = d[J](K)
				}
				b.ma = c;
				0 == a ? a = fb : (c = [fb, 0 > a ? Fa : L], a = t.abs(a), c[x](t[A](a / 60) % 100), a %= 60,
					0 != a && c[x](Oa, a), a = c[J](K));
				b.J = [a, a];
				b.v = [];
				return b
			}
			b = new Kd;
			b.ma = a.id;
			b.ka = -a.std_offset;
			b.J = a.names;
			b.v = a.transitions;
			return b
		}
		R = Kd[G];
		R.pa = function(a) {
			for (var a = Date.UTC(a.getUTCFullYear(), a.getUTCMonth(), a.getUTCDate(), a.getUTCHours(), a
					.getUTCMinutes()) / 36E5, b = 0; b < this.v[F] && a >= this.v[b];) b += 2;
			return 0 == b ? 0 : this.v[b - 1]
		};
		R.Ib = function(a) {
			var a = this.K(a),
				b = [Wa];
			b[x](0 >= a ? Fa : L);
			a = t.abs(a);
			b[x](T(t[A](a / 60) % 100, 2), Oa, T(a % 60, 2));
			return b[J](K)
		};
		R.Jb = function(a) {
			return this.J[this.oa(a) ? 3 : 1]
		};
		R.K = function(a) {
			return this.ka - this.pa(a)
		};
		R.Kb = function(a) {
			var a = -this.K(a),
				b = [0 > a ? L : Fa],
				a = t.abs(a);
			b[x](T(t[A](a / 60) % 100, 2), T(a % 60, 2));
			return b[J](K)
		};
		R.Lb = function(a) {
			return this.J[this.oa(a) ? 2 : 0]
		};
		R.oa = function(a) {
			return 0 < this.pa(a)
		};

		function Md(a) {
			this.u = [];
			typeof a == P ? this.q(a) : this.c(a)
		}
		var Nd = [/^\'(?:[^\']|\'\')*\'/, /^(?:G+|y+|M+|k+|S+|E+|a+|h+|K+|H+|c+|L+|Q+|d+|m+|s+|v+|z+|Z+)/,
			/^[^\'GyMkSEahKHcLQdmsvzZ]+/
		];
		R = Md[G];
		R.c = function(a) {
			for (; a;)
				for (var b = 0; b < Nd[F]; ++b) {
					var c = a.match(Nd[b]);
					if (c) {
						c = c[0];
						a = a[I](c[F]);
						0 == b && (c == Ba ? c = Aa : (c = c[I](1, c[F] - 1), c = c[z](/\'\'/, Aa)));
						this.u[x]({
							text: c,
							type: b
						});
						break
					}
				}
		};
		u(R, function(a, b) {
			var c = b ? 6E4 * (a[ta]() - b.K(a)) : 0,
				d = c ? new Date(a[ja]() + c) : a,
				e = d;
			b && d[ta]() != a[ta]() && (e = new Date(a[ja]() + (c + (0 < c ? -864E5 : 864E5))));
			for (var c = [], f = 0; f < this.u[F]; ++f) {
				var n = this.u[f].text;
				1 == this.u[f].type ? c[x](this.qb(n, a, d, e, b)) : c[x](n)
			}
			return c[J](K)
		});
		R.q = function(a) {
			if (4 > a) a = X.ia[a];
			else if (8 > a) a = X.ja[a - 4];
			else if (12 > a) a = X.ia[a - 8] + ua + X.ja[a - 8];
			else {
				this.q(10);
				return
			}
			this.c(a)
		};
		R.Ya = function(a, b) {
			var c = 0 < b.getFullYear() ? 1 : 0;
			return 4 <= a ? X.Cb[c] : X.Db[c]
		};
		R.jb = function(a, b) {
			var c = b.getFullYear();
			0 > c && (c = -c);
			return 2 == a ? T(c % 100, 2) : K + c
		};
		R.ab = function(a, b) {
			var c = b.getMonth();
			switch (a) {
				case 5:
					return X.ub[c];
				case 4:
					return X.tb[c];
				case 3:
					return X.vb[c];
				default:
					return T(c + 1, a)
			}
		};
		R.Ua = function(a, b) {
			return T(b[ha]() || 24, a)
		};
		R.Za = function(a, b) {
			return (b[ja]() % 1E3 / 1E3).toFixed(t.min(3, a))[la](2) + (3 < a ? T(0, a - 3) : K)
		};
		R.Xa = function(a, b) {
			var c = b.getDay();
			return 4 <= a ? X.Hb[c] : X.Gb[c]
		};
		R.Va = function(a, b) {
			var c = b[ha]();
			return X.Mb[12 <= c && 24 > c ? 1 : 0]
		};
		R.Ta = function(a, b) {
			return T(b[ha]() % 12 || 12, a)
		};
		R.Ra = function(a, b) {
			return T(b[ha]() % 12, a)
		};
		R.Sa = function(a, b) {
			return T(b[ha](), a)
		};
		R.eb = function(a, b) {
			var c = b.getDay();
			switch (a) {
				case 5:
					return X.yb[c];
				case 4:
					return X.Bb[c];
				case 3:
					return X.Ab[c];
				default:
					return T(c, 1)
			}
		};
		R.fb = function(a, b) {
			var c = b.getMonth();
			switch (a) {
				case 5:
					return X.xb[c];
				case 4:
					return X.wb[c];
				case 3:
					return X.zb[c];
				default:
					return T(c + 1, a)
			}
		};
		R.bb = function(a, b) {
			var c = t[A](b.getMonth() / 3);
			return 4 > a ? X.Fb[c] : X.Eb[c]
		};
		R.Wa = function(a, b) {
			return T(b.getDate(), a)
		};
		R.$a = function(a, b) {
			return T(b.getMinutes(), a)
		};
		R.cb = function(a, b) {
			return T(b.getSeconds(), a)
		};
		R.hb = function(a, b, c) {
			c = c || Ld(b[ta]());
			return 4 > a ? c.Kb(b) : c.Ib(b)
		};
		R.ib = function(a, b, c) {
			c = c || Ld(b[ta]());
			return 4 > a ? c.Lb(b) : c.Jb(b)
		};
		R.gb = function(a, b) {
			b = b || Ld(a[ta]());
			return b.ma
		};
		R.qb = function(a, b, c, d, e) {
			var f = a[F];
			switch (a[C](0)) {
				case Va:
					return this.Ya(f, c);
				case Ac:
					return this.jb(f, c);
				case bb:
					return this.ab(f, c);
				case Sb:
					return this.Ua(f, d);
				case db:
					return this.Za(f, d);
				case Ta:
					return this.Xa(f, c);
				case mb:
					return this.Va(f, d);
				case Nb:
					return this.Ta(f, d);
				case Ya:
					return this.Ra(f, d);
				case Xa:
					return this.Sa(f, d);
				case tb:
					return this.eb(f, c);
				case Za:
					return this.fb(f, c);
				case cb:
					return this.bb(f, c);
				case xb:
					return this.Wa(f, c);
				case Vb:
					return this.$a(f, d);
				case ic:
					return this.cb(f, d);
				case xc:
					return this.gb(b,
						e);
				case Bc:
					return this.ib(f, b, e);
				case gb:
					return this.hb(f, b, e);
				default:
					return K
			}
		};

		function Y(a) {
			a = new ad([a || {}, {
				formatType: kc,
				valueType: zb
			}]);
			this.b = a.d(dc);
			this.H = h;
			this.lb = a.W(Cb, Od);
			this.kb = a.W(yc, Pd);
			this.Y = h;
			a = a.X(tc);
			if (a != h) this.Y = Ld(60 * -a)
		}
		var Od = {
				Tb: Eb,
				Ub: Ub,
				Vb: Wb,
				SHORT: kc
			},
			Pd = {
				Pb: yb,
				Qb: zb,
				Xb: sc
			};

		function Qd(a, b) {
			switch (a) {
				case yb:
					switch (b) {
						case Eb:
							return 0;
						case Ub:
							return 1;
						case Wb:
							return 2;
						case kc:
							return 3
					}
					case zb:
						switch (b) {
							case Eb:
								return 8;
							case Ub:
								return 9;
							case Wb:
								return 10;
							case kc:
								return 11
						}
						case sc:
							switch (b) {
								case Eb:
									return 4;
								case Ub:
									return 5;
								case Wb:
									return 6;
								case kc:
									return 7
							}
			}
		}
		u(Y[G], function(a, b) {
			var c = a[ga](b);
			if (!(c != yb && c != zb))
				for (var c = this.la(c), d = a[ma](), e = 0; e < d; e++) {
					var f = a[ia](e, b),
						f = this.s(c, f);
					a[oa](e, b, f)
				}
		});
		Y[G].formatValue = function(a) {
			if (!this.H) this.H = this.la(this.kb);
			return this.s(this.H, a)
		};
		Y[G].la = function(a) {
			var b = this.b;
			S(b) || (b = Qd(a, this.lb));
			return new Md(b)
		};
		Y[G].s = function(a, b) {
			if (b === h) return K;
			var c = this.Y;
			c == h && (c = Ld(b[ta]()));
			return a[D](b, c)
		};

		function Rd(a, b) {
			var c = [N],
				d = Sd[b][0] & 7;
			if (0 < d) {
				c[x](M);
				for (var e = 0; e < d; e++) c[x](N)
			}
			return a[z](/0.00/g, c[J](K))
		}
		var Sd = {
			AED: [2, "dh", "\u062f.\u0625.", "DH"],
			AUD: [2, "$", "AU$"],
			BDT: [2, "\u09f3", "Tk"],
			BRL: [2, "R$", "R$"],
			CAD: [2, "$", "C$"],
			CHF: [2, "CHF", "CHF"],
			CLP: [0, "$", "CL$"],
			CNY: [2, "\u00a5", "RMB\u00a5"],
			COP: [0, "$", "COL$"],
			CRC: [0, "\u20a1", "CR\u20a1"],
			CZK: [2, "K\u010d", "K\u010d"],
			DKK: [18, "kr", "kr"],
			DOP: [2, "$", "RD$"],
			EGP: [2, "\u00a3", "LE"],
			EUR: [18, "\u20ac", "\u20ac"],
			GBP: [2, "\u00a3", "GB\u00a3"],
			HKD: [2, "$", "HK$"],
			ILS: [2, "\u20aa", "IL\u20aa"],
			INR: [2, "\u20b9", "Rs"],
			ISK: [0, "kr", "kr"],
			JMD: [2, "$", "JA$"],
			JPY: [0, "\u00a5", "JP\u00a5"],
			KRW: [0, "\u20a9", "KR\u20a9"],
			LKR: [2, "Rs", "SLRs"],
			MNT: [0, "\u20ae", "MN\u20ae"],
			MXN: [2, "$", "Mex$"],
			MYR: [2, "RM", "RM"],
			NOK: [18, "kr", "NOkr"],
			PAB: [2, "B/.", "B/."],
			PEN: [2, "S/.", "S/."],
			PHP: [2, "\u20b1", "Php"],
			PKR: [0, "Rs", "PKRs."],
			RUB: [2, "Rup", "Rup"],
			SAR: [2, "Rial", "Rial"],
			SEK: [2, "kr", "kr"],
			SGD: [2, "$", "S$"],
			THB: [2, "\u0e3f", "THB"],
			TRY: [2, "TL", "YTL"],
			TWD: [2, "NT$", "NT$"],
			USD: [2, "$", "US$"],
			UYU: [2, "$", "UY$"],
			VND: [0, "\u20ab", "VN\u20ab"],
			YER: [0, "Rial", "Rial"],
			ZAR: [2, "R", "ZAR"]
		};
		var Z = {
				DECIMAL_SEP: M,
				GROUP_SEP: Ga,
				fa: za,
				j: N,
				ca: Fa,
				aa: L,
				$: Ta,
				ga: Ec,
				U: "\u221e",
				V: "NaN",
				DECIMAL_PATTERN: "#,##0.###",
				da: "#E0",
				ba: "#,##0%",
				Z: "\u00a4#,##0.00;(\u00a4#,##0.00)",
				O: "USD"
			},
			Z = {
				DECIMAL_SEP: M,
				GROUP_SEP: Ga,
				fa: za,
				j: N,
				ca: Fa,
				aa: L,
				$: Ta,
				ga: Ec,
				U: "\u221e",
				V: "NaN",
				DECIMAL_PATTERN: "#,##0.###",
				da: "#E0",
				ba: "#,##0%",
				Z: "\u00a4#,##0.00",
				O: "CNY"
			};

		function Ud(a, b, c) {
			this.g = b || Z.O;
			this.ra = c || 0;
			this.p = 40;
			this.a = 1;
			this.C = 3;
			this.o = this.h = 0;
			this.M = i;
			this.A = this.z = K;
			this.l = L;
			this.m = K;
			this.f = 1;
			this.B = 3;
			this.n = this.N = i;
			typeof a == P ? this.q(a) : this.c(a)
		}
		R = Ud[G];
		R.c = function(a) {
			this.b = a[z](/ /g, Cc);
			var b = [0];
			this.z = this.t(a, b);
			var c = b[0];
			this.mb(a, b);
			c = b[0] - c;
			this.A = this.t(a, b);
			b[0] < a[F] && a[C](b[0]) == Pa ? (b[0]++, this.l = this.t(a, b), b[0] += c, this.m = this.t(a,
				b)) : (this.l = this.z + this.l, this.m += this.A)
		};
		R.q = function(a) {
			switch (a) {
				case 1:
					this.c(Z.DECIMAL_PATTERN);
					break;
				case 2:
					this.c(Z.da);
					break;
				case 3:
					this.c(Z.ba);
					break;
				case 4:
					this.c(Rd(Z.Z, this.g));
					break;
				default:
					throw l("Unsupported pattern type.");
			}
		};
		u(R, function(a) {
			if (ba(a)) return Z.V;
			var b = [],
				c = 0 > a || 0 == a && 0 > 1 / a;
			b[x](c ? this.l : this.z);
			if (isFinite(a)) a = a * (c ? -1 : 1) * this.f, this.n ? this.Qa(a, b) : this.D(a, this.a,
				b);
			else b[x](Z.U);
			b[x](c ? this.m : this.A);
			return b[J](K)
		});
		R.D = function(a, b, c) {
			for (var d = t.pow(10, this.C), a = t[y](a * d), e = t[A](a / d), f = t[A](a - e * d), n = 0 <
					this.h || 0 < f, p = K, a = e; 1.0E20 < a;) p = N + p, a = t[y](a / 10);
			var p = a + p,
				B = Z.DECIMAL_SEP,
				Q = Z.GROUP_SEP,
				a = Z.j.charCodeAt(0),
				W = p[F];
			if (0 < e || 0 < b) {
				for (e = W; e < b; e++) c[x](Z.j);
				for (e = 0; e < W; e++) c[x](String.fromCharCode(a + 1 * p[C](e))), 1 < W - e && 0 < this
					.B && 1 == (W - e) % this.B && c[x](Q)
			} else n || c[x](Z.j);
			(this.N || n) && c[x](B);
			b = K + (f + d);
			for (d = b[F]; b[C](d - 1) == N && d > this.h + 1;) d--;
			for (e = 1; e < d; e++) c[x](String.fromCharCode(a + 1 * b[C](e)))
		};
		R.ea = function(a, b) {
			b[x](Z.$);
			0 > a ? (a = -a, b[x](Z.aa)) : this.M && b[x](Z.ca);
			for (var c = K + a, d = c[F]; d < this.o; d++) b[x](Z.j);
			b[x](c)
		};
		R.Qa = function(a, b) {
			if (0 == a) this.D(a, this.a, b), this.ea(0, b);
			else {
				var c = t[A](t.log(a) / t.log(10)),
					a = a / t.pow(10, c),
					d = this.a;
				if (1 < this.p && this.p > this.a) {
					for (; 0 != c % this.p;) a *= 10, c--;
					d = 1
				} else 1 > this.a ? (c++, a /= 10) : (c -= this.a - 1, a *= t.pow(10, this.a - 1));
				this.D(a, d, b);
				this.ea(c, b)
			}
		};
		R.t = function(a, b) {
			for (var c = K, d = i, e = a[F]; b[0] < e; b[0]++) {
				var f = a[C](b[0]);
				if (f == Aa) b[0] + 1 < e && a[C](b[0] + 1) == Aa ? (b[0]++, c += Aa) : d = !d;
				else if (d) c += f;
				else switch (f) {
					case wa:
					case N:
					case Ga:
					case M:
					case Pa:
						return c;
					case Dc:
						if (b[0] + 1 < e && a[C](b[0] + 1) == Dc) b[0]++, c += this.g;
						else switch (this.ra) {
							case 0:
								c += Sd[this.g][1];
								break;
							case 2:
								var f = this.g,
									n = Sd[f],
									c = c + (f == n[1] ? f : f + ua + n[1]);
								break;
							case 1:
								c += Sd[this.g][2]
						}
						break;
					case za:
						if (1 != this.f) throw l(eb);
						this.f = 100;
						c += Z.fa;
						break;
					case Ec:
						if (1 != this.f) throw l(eb);
						this.f = 1E3;
						c += Z.ga;
						break;
					default:
						c += f
				}
			}
			return c
		};
		R.mb = function(a, b) {
			for (var c = -1, d = 0, e = 0, f = 0, n = -1, p = a[F], B = aa; b[0] < p && B; b[0]++) switch (
				a[C](b[0])) {
				case wa:
					0 < e ? f++ : d++;
					0 <= n && 0 > c && n++;
					break;
				case N:
					if (0 < f) throw l('Unexpected "0" in pattern "' + a + '"');
					e++;
					0 <= n && 0 > c && n++;
					break;
				case Ga:
					n = 0;
					break;
				case M:
					if (0 <= c) throw l('Multiple decimal separators in pattern "' + a + '"');
					c = d + e + f;
					break;
				case Ta:
					if (this.n) throw l('Multiple exponential symbols in pattern "' + a + '"');
					this.n = aa;
					this.o = 0;
					if (b[0] + 1 < p && a[C](b[0] + 1) == Fa) b[0]++, this.M = aa;
					for (; b[0] + 1 < p && a[C](b[0] + 1) == N;) b[0]++,
						this.o++;
					if (1 > d + e || 1 > this.o) throw l('Malformed exponential pattern "' + a + '"');
					B = i;
					break;
				default:
					b[0]--, B = i
			}
			0 == e && 0 < d && 0 <= c && (e = c, 0 == e && e++, f = d - e, d = e - 1, e = 1);
			if (0 > c && 0 < f || 0 <= c && (c < d || c > d + e) || 0 == n) throw l('Malformed pattern "' +
				a + '"');
			f = d + e + f;
			this.C = 0 <= c ? f - c : 0;
			if (0 <= c && (this.h = d + e - c, 0 > this.h)) this.h = 0;
			this.a = (0 <= c ? c : f) - d;
			if (this.n && (this.p = d + this.a, 0 == this.C && 0 == this.a)) this.a = 1;
			this.B = t.max(0, n);
			this.N = 0 == c || c == f
		};

		function $(a) {
			a = new ad([a || {}, {
				decimalSymbol: Vd,
				groupingSymbol: Wd,
				fractionDigits: 2,
				negativeParens: i,
				prefix: K,
				suffix: K,
				scaleFactor: 1
			}]);
			this.i = a.Ma(Db);
			this.Ka = a.r(Ab);
			this.F = a.r(Mb);
			this.Ia = a.r(ec);
			this.Ja = a.r(qc);
			this.G = a.Oa(Zb);
			this.S = a.La($b);
			this.b = a.Pa(dc);
			this.T = a.Na(jc);
			if (0 >= this.T) throw "Scale factor must be a positive number.";
		}
		var Vd = Z.DECIMAL_SEP,
			Wd = Z.GROUP_SEP,
			Xd = Z.DECIMAL_PATTERN;
		u($[G], function(a, b) {
			if (a[ga](b) == P)
				for (var c = 0; c < a[ma](); c++) {
					var d = a[ia](c, b);
					if (d != h) {
						var e = this.formatValue(d);
						a[oa](c, b, e);
						!/^[\s\xa0]*$/ [da](this.G == h ? K : K + this.G) && 0 > d && a[pa](c, b, oc,
							wb + this.G + Pa)
					}
				}
		});
		$[G].formatValue = function(a) {
			var b = h,
				b = a / this.T;
			this.b === h ? (this.S && (b = t.abs(b)), b = this.s(b), b = this.Ia + b + this.Ja, this.S &&
				0 > a && (b = Ca + b + Ea)) : b = (new Ud(this.b))[D](b);
			return b
		};
		$[G].s = function(a) {
			0 == this.i && (a = t[y](a));
			var b = [];
			0 > a && (a = -a, b[x](L));
			var c = t.pow(10, this.i),
				d = t[y](a * c),
				a = K + t[A](d / c),
				c = K + d % c;
			if (3 < a[F] && this.F) {
				d = a[F] % 3;
				0 < d && (b[x](a[I](0, d), this.F), a = a[I](d));
				for (; 3 < a[F];) b[x](a[I](0, 3), this.F), a = a[I](3)
			}
			b[x](a);
			0 < this.i && (b[x](this.Ka), c[F] < this.i && (c = La + c), b[x](c[I](c[F] - this.i)));
			return b[J](K)
		};

		function Yd(a) {
			this.b = a || K
		}

		function Zd(a, b, c, d, e, f, n) {
			return 0 < f && n[f - 1] == kb ? d : b.getFormattedValue(a, c[m(e, 10)])
		}
		u(Yd[G], function(a, b, c, d) {
			var e = b[0];
			c != h && Hc(c) == P && (e = c);
			c = d || h;
			for (d = 0; d < a[ma](); d++) {
				var f = this.b[z](/{(\d+)}/g, Mc(Zd, d, a, b)),
					f = f[z](/\\(.)/g, ya);
				c ? a[pa](d, e, c, f) : a[oa](d, e, f)
			}
		});
		j("google.visualization.NumberFormat", $);
		q($[G], O, $[G][D]);
		q($[G], "formatValue", $[G].formatValue);
		j("google.visualization.NumberFormat.DECIMAL_SEP", Vd);
		j("google.visualization.NumberFormat.GROUP_SEP", Wd);
		j("google.visualization.NumberFormat.DECIMAL_PATTERN", Xd);
		j("google.visualization.ColorFormat", V);
		q(V[G], O, V[G][D]);
		q(V[G], "addRange", V[G].addRange);
		q(V[G], nb, V[G].addGradientRange);
		j("google.visualization.BarFormat", Dd);
		q(Dd[G], O, Dd[G][D]);
		j("google.visualization.ArrowFormat", Oc);
		q(Oc[G], O, Oc[G][D]);
		j("google.visualization.PatternFormat", Yd);
		q(Yd[G], O, Yd[G][D]);
		j("google.visualization.DateFormat", Y);
		q(Y[G], O, Y[G][D]);
		q(Y[G], "formatValue", Y[G].formatValue);
		j("google.visualization.TableNumberFormat", $);
		q($[G], O, $[G][D]);
		j("google.visualization.TableColorFormat", V);
		q(V[G], O, V[G][D]);
		q(V[G], "addRange", V[G].addRange);
		q(V[G], nb, V[G].addGradientRange);
		j("google.visualization.TableBarFormat", Dd);
		q(Dd[G], O, Dd[G][D]);
		j("google.visualization.TableArrowFormat", Oc);
		q(Oc[G], O, Oc[G][D]);
		j("google.visualization.TablePatternFormat", Yd);
		q(Yd[G], O, Yd[G][D]);
		j("google.visualization.TableDateFormat", Y);
		q(Y[G], O, Y[G][D]);
	})();



	(function() {
		if (window["__gvizguard__"]) return;

		function e(a) {
			throw a;
		}
		var g = void 0,
			i = !0,
			k = null,
			l = !1,
			aa = encodeURIComponent,
			m = google_exportSymbol,
			ba = window,
			ca = Number,
			da = Object,
			ea = Infinity,
			n = Error,
			fa = parseInt,
			ga = parseFloat,
			ha = isFinite,
			ja = document,
			ka = decodeURIComponent,
			la = isNaN,
			p = google_exportProperty,
			na = RegExp,
			oa = Array,
			q = Math;

		function pa(a, b) {
			return a.width = b
		}

		function qa(a, b) {
			return a.innerHTML = b
		}

		function sa(a, b) {
			return a.currentTarget = b
		}

		function ua(a, b) {
			return a.left = b
		}

		function va(a, b) {
			return a.screenX = b
		}

		function wa(a, b) {
			return a.screenY = b
		}

		function xa(a, b) {
			return a.format = b
		}

		function ya(a, b) {
			return a.keyCode = b
		}

		function za(a, b) {
			return a.handleEvent = b
		}

		function Ba(a, b) {
			return a.depth = b
		}

		function Ca(a, b) {
			return a.type = b
		}

		function Ea(a, b) {
			return a.clear = b
		}

		function Fa(a, b) {
			return a.setContent = b
		}

		function Ga(a, b) {
			return a.getValue = b
		}

		function Ha(a, b) {
			return a.clientX = b
		}

		function Ia(a, b) {
			return a.clientY = b
		}

		function Ka(a, b) {
			return a.visibility = b
		}

		function La(a, b) {
			return a.setState = b
		}

		function Ma(a, b) {
			return a.length = b
		}

		function Na(a, b) {
			return a.setValue = b
		}

		function Oa(a, b) {
			return a.className = b
		}

		function Pa(a, b) {
			return a.next = b
		}

		function Qa(a, b) {
			return a.visualization = b
		}

		function Ra(a, b) {
			return a.clone = b
		}

		function Sa(a, b) {
			return a.target = b
		}

		function Ta(a, b) {
			return a.bottom = b
		}

		function Ua(a, b) {
			return a.contains = b
		}

		function Va(a, b) {
			return a.display = b
		}

		function Wa(a, b) {
			return a.height = b
		}

		function Xa(a, b) {
			return a.right = b
		}
		var Ya = "appendChild",
			s = "push",
			Za = "isCollapsed",
			$a = "getBoundingClientRect",
			ab = "getParent",
			bb = "open",
			cb = "test",
			eb = "relatedTarget",
			fb = "clearTimeout",
			t = "width",
			gb = "collapse",
			hb = "slice",
			u = "replace",
			ib = "nodeType",
			jb = "events",
			kb = "floor",
			lb = "getElementById",
			mb = "getOptions",
			nb = "RequestParameters",
			ob = "concat",
			pb = "charAt",
			qb = "createTextNode",
			rb = "getNumberOfColumns",
			sb = "value",
			tb = "getDataTable",
			ub = "preventDefault",
			vb = "insertBefore",
			wb = "targetTouches",
			v = "indexOf",
			xb = "metaKey",
			yb = "setEnd",
			x = "dispatchEvent",
			zb =
			"capture",
			Ab = "getColumnProperties",
			Bb = "nodeName",
			Cb = "currentTarget",
			y = "left",
			Db = "setColumnProperties",
			Eb = "screenX",
			Fb = "screenY",
			Gb = "match",
			Hb = "format",
			Ib = "getBoxObjectFor",
			Jb = "send",
			Kb = "getName",
			Lb = "charCode",
			Mb = "remove",
			Nb = "isError",
			Ob = "focus",
			Pb = "createElement",
			Qb = "getColumnLabel",
			Rb = "toDataTable",
			Sb = "scrollHeight",
			Tb = "keyCode",
			Ub = "getColumnType",
			Vb = "firstChild",
			Wb = "getSortedRows",
			Xb = "forEach",
			Yb = "clientLeft",
			Zb = "getTableRowIndex",
			$b = "setAttribute",
			ac = "clientTop",
			bc = "handleEvent",
			cc = "getRowProperties",
			dc = "getTableProperties",
			fc = "setRefreshInterval",
			gc = "depth",
			z = "type",
			hc = "childNodes",
			ic = "defaultView",
			jc = "setCell",
			kc = "bind",
			lc = "source",
			mc = "setContent",
			nc = "name",
			A = "getValue",
			oc = "nextSibling",
			pc = "addRows",
			qc = "setActive",
			rc = "getElementsByTagName",
			sc = "clientX",
			tc = "clientY",
			uc = "documentElement",
			vc = "substr",
			wc = "setState",
			xc = "scrollTop",
			yc = "toString",
			zc = "altKey",
			Ac = "getMonth",
			Bc = "setStart",
			Cc = "getView",
			Dc = "getNumberOfRows",
			B = "length",
			Ec = "propertyIsEnumerable",
			Fc = "getProperties",
			Gc = "addError",
			D = "prototype",
			Hc = "toJSON",
			Ic = "setValue",
			Jc = "clientWidth",
			Kc = "abort",
			Lc = "setTimeout",
			Mc = "setDataSourceUrl",
			Nc = "document",
			Oc = "ctrlKey",
			Pc = "split",
			Qc = "getColumnProperty",
			Rc = "constructor",
			Sc = "stopPropagation",
			Tc = "getColumnPattern",
			Uc = "location",
			Vc = "setOptions",
			E = "visualization",
			Wc = "disabled",
			Xc = "message",
			Yc = "hasOwnProperty",
			F = "style",
			Zc = "setView",
			$c = "setQuery",
			ad = "body",
			bd = "removeChild",
			cd = "clone",
			dd = "getDataSourceUrl",
			ed = "target",
			fd = "lastChild",
			G = "call",
			gd = "isEnabled",
			hd = "setDataTable",
			id = "removeAll",
			jd = "lastIndexOf",
			kd = "draw",
			ld = "getFullYear",
			md = "DataView",
			nd = "getRefreshInterval",
			od = "getState",
			pd = "clientHeight",
			qd = "scrollLeft",
			rd = "charCodeAt",
			sd = "getPackages",
			td = "getContainerId",
			ud = "bottom",
			vd = "currentStyle",
			wd = "href",
			xd = "substring",
			yd = "getQuery",
			zd = "rows",
			Ad = "apply",
			Bd = "shiftKey",
			Cd = "tagName",
			Dd = "addColumn",
			Ed = "element",
			Fd = "getFormattedValue",
			Gd = "errors",
			Hd = "parentNode",
			Id = "label",
			Jd = "offsetTop",
			I = "height",
			Kd = "splice",
			Ld = "join",
			Md = "setColumns",
			Nd = "execScript",
			Od = "toLowerCase",
			Pd = "right",
			J = "",
			Qd = "\n",
			Rd = "\n<\/script>",
			Sd = " ",
			Td = " [",
			Ud = " is duplicate in sortColumns.",
			Vd = ' name="',
			Wd = ' type="',
			Xd = '"',
			Yd = '" />',
			Zd = '" src="http://www.google.com/ig/ifr?url=',
			$d = '">\n',
			ae = "#",
			be = "#$1$1$2$2$3$3",
			ce = "%",
			de = "%22",
			ee = "%27",
			fe = "&",
			ge = "&amp;",
			he = "&gt;",
			ie = "&lt;",
			je = "&quot;",
			ke = "&requireauth=1&",
			le = "&up_",
			me = "&up__table_query_url=",
			ne = "').send(\n     function(response) {\n      new ",
			oe = "']});\n\n   function drawVisualization() {\n    new google.visualization.Query('",
			pe = "(",
			qe =
			'(\n       document.getElementById(\'visualization\')).\n        draw(response.getDataTable(), null);\n      });\n   }\n\n   google.setOnLoadCallback(drawVisualization);\n  <\/script>\n </head>\n <body>\n  <div id="visualization" style="width: 500px; height: 500px;"></div>\n </body>\n</html>',
			re = "(\\d*)(\\D*)",
			se = ")",
			te = "*",
			ue = ",",
			ve = ", ",
			we = "-active",
			xe = "-bg",
			ye = "-buttons",
			ze = "-caption",
			Ae = "-checkbox",
			Be = "-checked",
			Ce = "-content",
			De = "-default",
			Ee = "-disabled",
			Fe = "-dropdown",
			Ge = "-focused",
			He = "-highlight",
			Ie = "-horizontal",
			Je = "-hover",
			Ke = "-inner-box",
			Le = "-open",
			Me = "-outer-box",
			Ne = "-rtl",
			Pe = "-selected",
			Qe = "-title",
			Re = "-title-close",
			Se = "-title-draggable",
			Te = "-title-text",
			Ue = "-vertical",
			Ve = ".",
			We = "..",
			Xe = "./",
			Ye = "/",
			Ze = "/.",
			$e = "//",
			af = "/chart.html",
			bf = "/chart.js",
			cf = "/static/modules/gviz/",
			df =
			"/tq",
			ef = "/util/toolbar.css",
			ff = "0",
			gf = "0.5",
			hf = "0.6",
			jf = "00",
			kf = "000",
			lf = "1",
			mf = "1.0",
			nf = "1.9",
			of = "500",
			pf = "525",
			qf = "528",
			rf = "533.17.9",
			sf = "7",
			tf = "8",
			uf = ":",
			vf = ";",
			wf = ";sig:",
			xf = ";type:",
			yf = "<",
			zf =
			'<html>\n <head>\n  <title>Google Visualization API</title>\n  <script type="text/javascript" src="http://www.google.com/jsapi"><\/script>\n  <script type="text/javascript">\n   google.load(\'visualization\', \'1\', {packages: [\'',
			Af = '<iframe style="',
			Bf = '<script type="text/javascript" src="',
			Cf = "=",
			Df =
			">",
			Ef = "?",
			Ff = "@",
			Gf = "APPLET",
			Hf = "AREA",
			If = "Add to iGoogle",
			Jf = "BASE",
			Kf = "BODY",
			Lf = "BR",
			Mf = "BUTTON",
			Nf = "BarChart",
			Of = "BubbleChart",
			Pf = "COL",
			Qf = "CSS1Compat",
			Rf = "Chart options",
			Sf = "Column index ",
			Tf = "Component already rendered",
			Uf = "Content-Type",
			Vf = "Copy-Paste this code to an HTML page",
			Wf = "Dashboard",
			Xf = "Date(",
			Yf = "End",
			Zf = "EndToEnd",
			$f = "Export data as CSV",
			ag = "Export data as HTML",
			bg = "FRAME",
			cg = "GET",
			dg = "GeoChart",
			eg = "Google Visualization",
			fg = "Google_Visualization",
			gg = "HR",
			hg = "HTML",
			ig = "IFRAME",
			jg =
			"IMG",
			kg = "INPUT",
			lg = "ISINDEX",
			mg = "ImageChart",
			ng = "ImageRadarChart",
			og = "Invalid DataView column type.",
			pg = "Invalid listener argument",
			qg = "JavaScript",
			rg = "Javascript code",
			sg = "LINK",
			tg = "META",
			ug = "MSXML2.XMLHTTP",
			vg = "MSXML2.XMLHTTP.3.0",
			wg = "MSXML2.XMLHTTP.6.0",
			xg = "Microsoft.XMLHTTP",
			yg = "MozOpacity",
			zg = "NOFRAMES",
			Ag = "NOSCRIPT",
			Bg = "Name",
			Cg = "Not a valid 2D array.",
			Dg = "OBJECT",
			Eg = "PARAM",
			Fg = "POST",
			Gg = "Publish to web page",
			Hg = "Q",
			Ig = "Request timed out",
			Jg = "SCRIPT",
			Kg = "SELECT",
			Lg = "STYLE",
			Mg = "ScatterChart",
			Ng = "Start",
			Og = "StartToEnd",
			Pg = "StartToStart",
			Qg = "Style",
			Rg = "TEXTAREA",
			Sg = "TR",
			Tg = "Timed out after ",
			Ug = "To",
			Vg = "Type",
			Wg = "Unable to set parent component",
			Xg = "W",
			Yg = "Width",
			Zg = "[",
			$g = "[object Array]",
			ah = "[object Function]",
			bh = "[object Window]",
			ch = "\\\\",
			dh = "\\c",
			eh = "\\s",
			fh = "\\u",
			gh = "]",
			hh = "_",
			ih = "_table_query_refresh_interval",
			jh = "_table_query_url",
			kh = "abort",
			lh = "absolute",
			mh = "action",
			nh = "activate",
			oh = "activedescendant",
			ph = "afterhide",
			qh = "aftershow",
			rh = "alpha(opacity=",
			sh = "application/x-www-form-urlencoded;charset=utf-8",
			th = "aria-",
			uh = "array",
			vh = "auto",
			wh = "beforedrag",
			xh = "beforehide",
			yh = "beforeshow",
			zh = "block",
			Ah = "blur",
			Bh = "body",
			Ch = "boolean",
			Dh = "border-box",
			Eh = "border:0;vertical-align:bottom;",
			Fh = "borderBottom",
			Gh = "borderBottomWidth",
			Hh = "borderLeft",
			Ih = "borderLeftWidth",
			Jh = "borderRight",
			Kh = "borderRightWidth",
			Lh = "borderTop",
			Mh = "borderTopWidth",
			Nh = "br",
			Oh = "button",
			Ph = "call",
			Qh = "callee",
			Rh = "character",
			Sh = "chart",
			Th = "check",
			Uh = "checked",
			Vh = "cht",
			Wh = "class",
			Xh = "click",
			Yh = "close",
			Zh = "column",
			$h = "columnFilters[",
			ai = "complete",
			bi = "control",
			ci = "controls",
			di = "corechart",
			ei = "csv",
			fi = "dashboard",
			gi = "date",
			hi = "datetime",
			ii = "dblclick",
			ji = "deactivate",
			ki = "desc",
			li = "detailed_message",
			mi = "dialog",
			ni = "dialogselect",
			oi = "direction",
			pi = "disable",
			qi = "disabled",
			ri = "display",
			si = "display: none; padding-top: 2px",
			ti = "div",
			ui = "drag",
			vi = "dragstart",
			wi = "draw",
			xi = "earlycancel",
			yi = "emptyString",
			zi = "enable",
			Ai = "end",
			Bi = "enter",
			Ci = "error",
			Di = "expanded",
			Ei = "false",
			Fi = "filter",
			Gi = "fixed",
			Hi = "focus",
			Ii = "focusin",
			Ji = "focusout",
			Ki = "for",
			Li = "full",
			Mi =
			"function",
			Ni = "g",
			Oi = "gadgets.io.makeRequest",
			Pi = "gadgets.io.makeRequest failed",
			Qi = "getColumnIndex",
			Ri = "getColumnLabel",
			Si = "getColumnPattern",
			Ti = "getColumnProperties",
			Ui = "getColumnProperty",
			Vi = "getColumnRange",
			Wi = "getContainerId",
			Xi = "getDataSourceUrl",
			Yi = "getDataTable",
			Zi = "getDistinctValues",
			$i = "getFilteredRows",
			aj = "getFormattedValue",
			bj = "getNumberOfColumns",
			cj = "getNumberOfRows",
			dj = "getPackages",
			ej = "getQuery",
			fj = "getRefreshInterval",
			gj = "getRowProperties",
			hj = "getRowProperty",
			ij = "getSnapshot",
			jj = "getTableProperties",
			kj = "getTableProperty",
			lj = "goog-button",
			mj = "goog-container",
			nj = "goog-control",
			oj = "goog-custom-button",
			pj = "goog-inline-block ",
			qj = "goog-menu",
			rj = "goog-menu-button",
			sj = "goog-menuheader",
			tj = "goog-menuitem",
			uj = "goog-menuitem-accel",
			vj = "goog-menuitem-mnemonic-separator",
			wj = "goog-menuseparator",
			xj = "goog-modalpopup",
			yj = "goog-option",
			zj = "goog-option-selected",
			Aj = "google-visualization-toolbar-big-dialog",
			Bj = "google-visualization-toolbar-export-data",
			Cj = "google-visualization-toolbar-export-igoogle",
			Dj = "google-visualization-toolbar-html-code",
			Ej = "google-visualization-toolbar-html-code-explanation",
			Fj = "google-visualization-toolbar-small-dialog",
			Gj = "google-visualization-toolbar-triangle",
			Hj = "google.loader.GoogleApisBase",
			Ij = "google.visualization.",
			Jj = "google.visualization.Version",
			Kj = "hasLabelsColumn",
			Lj = "haspopup",
			Mj = "head",
			Nj = "hex",
			Oj = "hidden",
			Pj = "hide",
			Qj = "highlight",
			Rj = "horizontal",
			Sj = "html",
			Tj = "htmlcode",
			Uj = "http",
			Vj = "http%",
			Wj = "http://ajax.googleapis.com/ajax",
			Xj = "http://dummy.com",
			Yj = "http://www.google.com/ig/adde?moduleurl=",
			Zj =
			"https",
			$j = "https%",
			ak = "identity",
			bk = "iframe",
			ck = "igoogle",
			dk = "img",
			ek = "inline",
			fk = "innerText",
			gk = "input",
			hk = "invalid_query",
			ik = 'javascript:""',
			jk = "jscode",
			kk = "json",
			lk = "key",
			mk = "keydown",
			ok = "keypress",
			pk = "keyup",
			qk = "labelledby",
			rk = "leave",
			sk = "left",
			tk = "link",
			uk = "listbox",
			vk = "losecapture",
			wk = "makeRequest",
			xk = "make_request_failed",
			yk = "maxValue",
			zk = "medium",
			Ak = "menu",
			Bk = "menuitem",
			Ck = "message",
			Dk = "minValue",
			Ek = "modal-dialog",
			Fk = "modifier",
			Gk = "mousedown",
			Hk = "mousemove",
			Ik = "mouseout",
			Jk = "mouseover",
			Kk =
			"mouseup",
			Lk = "ms, aborting",
			Mk = "named",
			Nk = "native code",
			Ok = "new ",
			Pk = "nodeType",
			Qk = "none",
			Rk = "not_modified",
			Sk = "null",
			K = "number",
			Tk = "o",
			Uk = "object",
			Vk = "on",
			Wk = "opacity",
			Xk = "open",
			Yk = "option",
			Zk = "options",
			$k = "out:csv;",
			al = "out:html;",
			bl = "outerHTML",
			cl = "overflow",
			dl = "package",
			el = "padding: 2px",
			fl = "paddingBottom",
			gl = "paddingLeft",
			hl = "paddingRight",
			il = "paddingTop",
			jl = "pixelLeft",
			kl = "position",
			ll = "position:fixed;width:0;height:0;left:0;top:0;",
			ml = "pre",
			nl = "pressed",
			ol = "pub",
			pl = "px",
			ql = "r",
			rl = "range",
			sl =
			"ready",
			tl = "readystatechange",
			ul = "reason",
			vl = "refresh",
			wl = "relative",
			xl = "reqId:",
			yl = "resize",
			zl = "rgb",
			Al = "right",
			Bl = "role",
			Cl = "rs",
			Dl = "rtl",
			El = "script",
			Fl = "scroll",
			Gl = "select",
			Hl = "selected",
			Il = "separator",
			Jl = "setContainerId",
			Kl = "setDataSourceUrl",
			Ll = "setDataTable",
			Ml = "setOptions",
			Nl = "setPackages",
			Ol = "setQuery",
			Pl = "setRefreshInterval",
			Ql = "show",
			Rl = "solid",
			Sl = "sortColumns",
			Tl = "sortColumns[",
			Ul = "span",
			Vl = "splice",
			Wl = "start",
			Xl = "statechange",
			Yl = "static",
			M = "string",
			Zl = "stringify",
			$l = "style",
			am = "stylesheet",
			bm = "success",
			cm = "tabIndex",
			dm = "tabindex",
			em = "text/css",
			fm = "text/javascript",
			gm = "textContent",
			hm = "tick",
			im = "timeofday",
			jm = "timeout",
			km = "toJSON",
			lm = "touchcancel",
			mm = "touchend",
			nm = "touchmove",
			om = "touchstart",
			pm = "tqrt",
			qm = "tqx",
			rm = "transparent",
			sm = "true",
			tm = "type",
			um = "uncheck",
			vm = "unhighlight",
			wm = "unselect",
			xm = "unselectable",
			ym = "user_not_authenticated",
			zm = "value",
			Am = "var ",
			Bm = "var _et_ = 1;",
			Cm = "vertical",
			Dm = "visible",
			Em = "visualization",
			Fm = "warning",
			Gm = "width: 700px; height: 500px;",
			Hm = "window.event",
			Im = "withCredentials",
			Jm = "xhr",
			Km = "xhrpost",
			Lm = "zx",
			Mm = "{",
			Nm = "}",
			Om = "\u00a0",
			Pm = "\u00d7",
			Qm = "\u25bc",
			N, Rm = Rm || {},
			O = this;

		function Sm(a, b) {
			for (var c = a[Pc](Ve), d = b || O, f; f = c.shift();)
				if (P(d[f])) d = d[f];
				else return k;
			return d
		}

		function Tm() {}

		function Um(a) {
			a.qa = function() {
				return a.tk || (a.tk = new a)
			}
		}

		function Vm(a) {
			var b = typeof a;
			if (b == Uk)
				if (a) {
					if (a instanceof oa) return uh;
					if (a instanceof da) return b;
					var c = da[D][yc][G](a);
					if (c == bh) return Uk;
					if (c == $g || typeof a[B] == K && "undefined" != typeof a[Kd] && "undefined" != typeof a[
							Ec] && !a[Ec](Vl)) return uh;
					if (c == ah || "undefined" != typeof a[G] && "undefined" != typeof a[Ec] && !a[Ec](Ph))
						return Mi
				} else return Sk;
			else if (b == Mi && "undefined" == typeof a[G]) return Uk;
			return b
		}

		function Wm(a) {
			return a !== g
		}

		function Xm(a) {
			return a === k
		}

		function P(a) {
			return a != k
		}

		function Q(a) {
			return Vm(a) == uh
		}

		function Ym(a) {
			var b = Vm(a);
			return b == uh || b == Uk && typeof a[B] == K
		}

		function Zm(a) {
			return $m(a) && typeof a[ld] == Mi
		}

		function R(a) {
			return typeof a == M
		}

		function an(a) {
			return typeof a == K
		}

		function bn(a) {
			return Vm(a) == Mi
		}

		function $m(a) {
			a = Vm(a);
			return a == Uk || a == uh || a == Mi
		}

		function cn(a) {
			return a[dn] || (a[dn] = ++en)
		}
		var dn = "closure_uid_" + q[kb](2147483648 * q.random())[yc](36),
			en = 0;

		function fn(a) {
			var b = Vm(a);
			if (b == Uk || b == uh) {
				if (a[cd]) return a[cd]();
				var b = b == uh ? [] : {},
					c;
				for (c in a) b[c] = fn(a[c]);
				return b
			}
			return a
		}

		function gn(a, b, c) {
			return a[G][Ad](a[kc], arguments)
		}

		function hn(a, b, c) {
			a || e(n());
			if (2 < arguments[B]) {
				var d = oa[D][hb][G](arguments, 2);
				return function() {
					var c = oa[D][hb][G](arguments);
					oa[D].unshift[Ad](c, d);
					return a[Ad](b, c)
				}
			}
			return function() {
				return a[Ad](b, arguments)
			}
		}

		function jn(a, b, c) {
			jn = Function[D][kc] && -1 != Function[D][kc][yc]()[v](Nk) ? gn : hn;
			return jn[Ad](k, arguments)
		}

		function kn(a, b) {
			var c = oa[D][hb][G](arguments, 1);
			return function() {
				var b = oa[D][hb][G](arguments);
				b.unshift[Ad](b, c);
				return a[Ad](this, b)
			}
		}
		var ln = Date.now || function() {
			return +new Date
		};

		function mn(a) {
			if (O[Nd]) O[Nd](a, qg);
			else if (O.eval)
				if (nn == k && (O.eval(Bm), "undefined" != typeof O._et_ ? (delete O._et_, nn = i) : nn = l),
					nn) O.eval(a);
				else {
					var b = O[Nc],
						c = b[Pb](El);
					Ca(c, fm);
					c.defer = l;
					c[Ya](b[qb](a));
					b[ad][Ya](c);
					b[ad][bd](c)
				}
			else e(n("goog.globalEval not available"))
		}
		var nn = k;

		function S(a, b) {
			function c() {}
			c.prototype = b[D];
			a.b = b[D];
			a.prototype = new c;
			a[D].constructor = a
		};

		function on(a) {
			var b;
			if (0 == ja[rc](Mj)[B]) {
				b = ja[rc](Sj)[0];
				var c = ja[rc](Bh)[0],
					d = ja[Pb](Mj);
				b[vb](d, c)
			}
			b = ja[rc](Mj)[0];
			c = ja[Pb](El);
			Ca(c, fm);
			c.src = a;
			b[Ya](c)
		}

		function pn(a) {
			return function(b) {
				google[E][Gd][id](a);
				var c = b[Nb]();
				c && google[E][Gd].addErrorFromQueryResponse(a, b);
				return !c
			}
		};

		function qn(a) {
			a = J + a;
			if (/^\s*$/ [cb](a) ? 0 : /^[\],:{}\s\u2028\u2029]*$/ [cb](a[u](/\\["\\\/bfnrtu]/g, Ff)[u](
					/"[^"\\\n\r\u2028\u2029\x00-\x08\x10-\x1f\x80-\x9f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
					gh)[u](/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g, J))) try {
				return eval(pe + a + se)
			} catch (b) {}
			e(n("Invalid JSON string: " + a))
		}

		function rn(a) {
			this.Wd = a
		}
		rn[D].cl = function(a) {
			var b = [];
			this.Bf(a, b);
			return b[Ld](J)
		};
		rn[D].Bf = function(a, b) {
			switch (typeof a) {
				case M:
					this.nh(a, b);
					break;
				case K:
					this.wk(a, b);
					break;
				case Ch:
					b[s](a);
					break;
				case "undefined":
					b[s](Sk);
					break;
				case Uk:
					if (a == k) {
						b[s](Sk);
						break
					}
					if (Q(a)) {
						this.vk(a, b);
						break
					}
					this.xk(a, b);
					break;
				case Mi:
					break;
				default:
					e(n("Unknown type: " + typeof a))
			}
		};
		var sn = {
				'"': '\\"',
				"\\": ch,
				"/": "\\/",
				"\u0008": "\\b",
				"\u000c": "\\f",
				"\n": "\\n",
				"\r": "\\r",
				"\t": "\\t",
				"\u000b": "\\u000b"
			},
			tn = /\uffff/ [cb]("\uffff") ? /[\\\"\x00-\x1f\x7f-\uffff]/g : /[\\\"\x00-\x1f\x7f-\xff]/g;
		rn[D].nh = function(a, b) {
			b[s](Xd, a[u](tn, function(a) {
				if (a in sn) return sn[a];
				var b = a[rd](0),
					f = fh;
				16 > b ? f += kf : 256 > b ? f += jf : 4096 > b && (f += ff);
				return sn[a] = f + b[yc](16)
			}), Xd)
		};
		rn[D].wk = function(a, b) {
			b[s](ha(a) && !la(a) ? a : Sk)
		};
		rn[D].vk = function(a, b) {
			var c = a[B];
			b[s](Zg);
			for (var d = J, f = 0; f < c; f++) b[s](d), d = a[f], this.Bf(this.Wd ? this.Wd[G](a, J + f,
				d) : d, b), d = ue;
			b[s](gh)
		};
		rn[D].xk = function(a, b) {
			b[s](Mm);
			var c = J,
				d;
			for (d in a)
				if (da[D][Yc][G](a, d)) {
					var f = a[d];
					typeof f != Mi && (b[s](c), this.nh(d, b), b[s](uf), this.Bf(this.Wd ? this.Wd[G](a, d,
						f) : f, b), c = ue)
				} b[s](Nm)
		};

		function un(a) {
			a = vn(a, wn);
			return (new rn(g)).cl(a)
		}

		function xn(a) {
			qn(a);
			return yn(a)
		}

		function yn(a) {
			a = zn(a);
			return eval(pe + a + se)
		}

		function vn(a, b) {
			var a = b(a),
				c = Vm(a);
			if (c == Uk || c == uh) {
				var c = c == uh ? [] : {},
					d;
				for (d in a) {
					var f = vn(a[d], b);
					Wm(f) && (c[d] = f)
				}
			} else c = a;
			return c
		}

		function zn(a) {
			return a[u](/"(Date\([\d,\s]*\))"/g, function(a, c) {
				return Ok + c
			})
		}

		function wn(a) {
			Zm(a) && (a = 0 !== a.getMilliseconds() ? [a[ld](), a[Ac](), a.getDate(), a.getHours(), a
				.getMinutes(), a.getSeconds(), a.getMilliseconds()
			] : 0 !== a.getSeconds() || 0 !== a.getMinutes() || 0 !== a.getHours() ? [a[ld](), a[Ac](),
				a.getDate(), a.getHours(), a.getMinutes(), a.getSeconds()
			] : [a[ld](), a[Ac](), a.getDate()], a = Xf + a[Ld](ve) + se);
			return a
		};

		function An(a) {
			return /^[\s\xa0]*$/ [cb](a == k ? J : J + a)
		}

		function Bn(a) {
			return a[u](/[\t\r\n ]+/g, Sd)[u](/^[\t\r\n ]+|[\t\r\n ]+$/g, J)
		}

		function Cn(a) {
			return a[u](/^[\s\xa0]+|[\s\xa0]+$/g, J)
		}
		var Dn = /^[a-zA-Z0-9\-_.!~*'()]*$/;

		function En(a) {
			a = J + a;
			return !Dn[cb](a) ? aa(a) : a
		}

		function Fn(a, b) {
			if (b) return a[u](Gn, ge)[u](Hn, ie)[u](In, he)[u](Jn, je);
			if (!Kn[cb](a)) return a; - 1 != a[v](fe) && (a = a[u](Gn, ge)); - 1 != a[v](yf) && (a = a[u](Hn,
				ie)); - 1 != a[v](Df) && (a = a[u](In, he)); - 1 != a[v](Xd) && (a = a[u](Jn, je));
			return a
		}
		var Gn = /&/g,
			Hn = /</g,
			In = />/g,
			Jn = /\"/g,
			Kn = /[&<>\"]/;

		function Ln(a, b) {
			this.x = Wm(a) ? a : 0;
			this.y = Wm(b) ? b : 0
		}
		Ra(Ln[D], function() {
			return new Ln(this.x, this.y)
		});

		function Mn(a, b) {
			return new Ln(a.x - b.x, a.y - b.y)
		};

		function Nn(a, b) {
			pa(this, a);
			Wa(this, b)
		}
		Ra(Nn[D], function() {
			return new Nn(this[t], this[I])
		});
		Nn[D].floor = function() {
			pa(this, q[kb](this[t]));
			Wa(this, q[kb](this[I]));
			return this
		};
		Nn[D].round = function() {
			pa(this, q.round(this[t]));
			Wa(this, q.round(this[I]));
			return this
		};
		var On = na(
			"^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$"
			);

		function Pn(a) {
			return a && ka(a)
		}

		function Qn(a, b) {
			return b[Gb](On)[a] || k
		}
		var Rn = /#|$/;
		var Sn = /\/spreadsheet/,
			Tn = /\/(ccc|tq|pub)$/,
			Un = /^\/a\/(\w+.)*\w+/,
			Vn = /^(\/a\/(\w+.)*\w+)?/,
			Wn = /^spreadsheets?[0-9]?\.google\.com$/,
			Xn = /^docs\.google\.com*$/,
			Yn = /^(trix|spreadsheets|docs|webdrive)-[a-z]+\.corp\.google\.com/,
			Zn = /^(\w*\.){1,2}corp\.google\.com$/;

		function $n(a) {
			var b = Pn(Qn(3, a)),
				c = Wn[cb](b),
				d = Yn[cb](b),
				f = Zn[cb](b),
				b = Xn[cb](b),
				h = Pn(Qn(5, a)),
				j = na(Vn[lc] + Tn[lc]),
				h = (a = na(Vn[lc] + Sn[lc] + Tn[lc])[cb](h)) || j[cb](h);
			return b && a || (d || f || c) && h
		};
		var ao = oa[D],
			bo = ao[v] ? function(a, b, c) {
				return ao[v][G](a, b, c)
			} : function(a, b, c) {
				c = c == k ? 0 : 0 > c ? q.max(0, a[B] + c) : c;
				if (R(a)) return !R(b) || 1 != b[B] ? -1 : a[v](b, c);
				for (; c < a[B]; c++)
					if (c in a && a[c] === b) return c;
				return -1
			},
			co = ao[Xb] ? function(a, b, c) {
				ao[Xb][G](a, b, c)
			} : function(a, b, c) {
				for (var d = a[B], f = R(a) ? a[Pc](J) : a, h = 0; h < d; h++) h in f && b[G](c, f[h], h, a)
			},
			eo = ao.filter ? function(a, b, c) {
				return ao.filter[G](a, b, c)
			} : function(a, b, c) {
				for (var d = a[B], f = [], h = 0, j = R(a) ? a[Pc](J) : a, o = 0; o < d; o++)
					if (o in j) {
						var r = j[o];
						b[G](c, r, o, a) &&
							(f[h++] = r)
					} return f
			},
			fo = ao.map ? function(a, b, c) {
				return ao.map[G](a, b, c)
			} : function(a, b, c) {
				for (var d = a[B], f = oa(d), h = R(a) ? a[Pc](J) : a, j = 0; j < d; j++) j in h && (f[j] = b[G]
					(c, h[j], j, a));
				return f
			},
			go = ao.every ? function(a, b, c) {
				return ao.every[G](a, b, c)
			} : function(a, b, c) {
				for (var d = a[B], f = R(a) ? a[Pc](J) : a, h = 0; h < d; h++)
					if (h in f && !b[G](c, f[h], h, a)) return l;
				return i
			};

		function ho(a, b) {
			return 0 <= bo(a, b)
		}

		function io(a, b) {
			var c = bo(a, b),
				d;
			(d = 0 <= c) && ao[Kd][G](a, c, 1);
			return d
		}

		function jo(a) {
			return ao[ob][Ad](ao, arguments)
		}

		function ko(a) {
			if (Q(a)) return jo(a);
			for (var b = [], c = 0, d = a[B]; c < d; c++) b[c] = a[c];
			return b
		}

		function lo(a, b) {
			for (var c = 1; c < arguments[B]; c++) {
				var d = arguments[c],
					f;
				if (Q(d) || (f = Ym(d)) && d[Yc](Qh)) a[s][Ad](a, d);
				else if (f)
					for (var h = a[B], j = d[B], o = 0; o < j; o++) a[h + o] = d[o];
				else a[s](d)
			}
		}

		function mo(a, b, c, d) {
			return ao[Kd][Ad](a, no(arguments, 1))
		}

		function no(a, b, c) {
			return 2 >= arguments[B] ? ao[hb][G](a, b) : ao[hb][G](a, b, c)
		}

		function oo(a, b) {
			ao.sort[G](a, b || po)
		}

		function qo(a, b) {
			for (var c = 0; c < a[B]; c++) a[c] = {
				index: c,
				value: a[c]
			};
			var d = b || po;
			oo(a, function(a, b) {
				return d(a[sb], b[sb]) || a.index - b.index
			});
			for (c = 0; c < a[B]; c++) a[c] = a[c][sb]
		}

		function po(a, b) {
			return a > b ? 1 : a < b ? -1 : 0
		};

		function ro(a, b, c) {
			for (var d in a) b[G](c, a[d], d, a)
		}

		function so(a) {
			var b = [],
				c = 0,
				d;
			for (d in a) b[c++] = a[d];
			return b
		}

		function to(a) {
			var b = [],
				c = 0,
				d;
			for (d in a) b[c++] = d;
			return b
		}

		function uo(a, b) {
			for (var c in a)
				if (a[c] == b) return i;
			return l
		}

		function vo(a, b) {
			var c;
			(c = b in a) && delete a[b];
			return c
		}

		function wo(a) {
			var b = {},
				c;
			for (c in a) b[c] = a[c];
			return b
		}

		function xo(a) {
			var b = Vm(a);
			if (b == Uk || b == uh) {
				if (a[cd]) return a[cd]();
				var b = b == uh ? [] : {},
					c;
				for (c in a) b[c] = xo(a[c]);
				return b
			}
			return a
		}
		var yo = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf"
			.split(",");

		function zo(a, b) {
			for (var c, d, f = 1; f < arguments[B]; f++) {
				d = arguments[f];
				for (c in d) a[c] = d[c];
				for (var h = 0; h < yo[B]; h++) c = yo[h], da[D][Yc][G](d, c) && (a[c] = d[c])
			}
		};
		var Ao, Bo, Co, Do, Eo, Fo;

		function Go() {
			return O.navigator ? O.navigator.userAgent : k
		}

		function Ho() {
			return O.navigator
		}
		Eo = Do = Co = Bo = Ao = l;
		var Io;
		if (Io = Go()) {
			var Jo = Ho();
			Ao = 0 == Io[v]("Opera");
			Bo = !Ao && -1 != Io[v]("MSIE");
			Do = (Co = !Ao && -1 != Io[v]("WebKit")) && -1 != Io[v]("Mobile");
			Eo = !Ao && !Co && "Gecko" == Jo.product
		}
		var Ko = Ao,
			T = Bo,
			Lo = Eo,
			Mo = Co,
			No = Do,
			Oo = Ho(),
			Po = Oo && Oo.platform || J;
		Fo = -1 != Po[v]("Mac");
		Po[v]("Win");
		Po[v]("Linux");
		var Qo = !!Ho() && -1 != (Ho().appVersion || J)[v]("X11"),
			Ro;
		a: {
			var So = J,
				To;
			if (Ko && O.opera) var Uo = O.opera.version,
				So = typeof Uo == Mi ? Uo() : Uo;
			else if (Lo ? To = /rv\:([^\);]+)(\)|;)/ : T ? To = /MSIE\s+([^\);]+)(\)|;)/ : Mo && (To =
					/WebKit\/(\S+)/), To) var Vo = To.exec(Go()),
				So = Vo ? Vo[1] : J;
			if (T) {
				var Wo, Xo = O[Nc];
				Wo = Xo ? Xo.documentMode : g;
				if (Wo > ga(So)) {
					Ro = J + Wo;
					break a
				}
			}
			Ro = So
		}
		var Yo = Ro,
			Zo = {};

		function $o(a) {
			var b;
			if (!(b = Zo[a])) {
				b = 0;
				for (var c = Cn(J + Yo)[Pc](Ve), d = Cn(J + a)[Pc](Ve), f = q.max(c[B], d[B]), h = 0; 0 == b &&
					h < f; h++) {
					var j = c[h] || J,
						o = d[h] || J,
						r = na(re, Ni),
						w = na(re, Ni);
					do {
						var C = r.exec(j) || [J, J, J],
							L = w.exec(o) || [J, J, J];
						if (0 == C[0][B] && 0 == L[0][B]) break;
						b = ((0 == C[1][B] ? 0 : fa(C[1], 10)) < (0 == L[1][B] ? 0 : fa(L[1], 10)) ? -1 : (0 ==
							C[1][B] ? 0 : fa(C[1], 10)) > (0 == L[1][B] ? 0 : fa(L[1], 10)) ? 1 : 0) || ((
								0 == C[2][B]) < (0 == L[2][B]) ? -1 : (0 == C[2][B]) > (0 == L[2][B]) ? 1 :
							0) || (C[2] < L[2] ? -1 : C[2] > L[2] ? 1 : 0)
					} while (0 == b)
				}
				b = Zo[a] = 0 <= b
			}
			return b
		}
		var ap = {};

		function bp(a) {
			return ap[a] || (ap[a] = T && ja.documentMode && ja.documentMode >= a)
		};
		var cp, dp = !T || bp(9);
		!Lo && !T || T && bp(9) || Lo && $o("1.9.1");
		var ep = T && !$o("9");

		function fp(a) {
			return (a = a.className) && typeof a[Pc] == Mi ? a[Pc](/\s+/) : []
		}

		function gp(a, b) {
			var c = fp(a),
				d = no(arguments, 1),
				f;
			f = c;
			for (var h = 0, j = 0; j < d[B]; j++) ho(f, d[j]) || (f[s](d[j]), h++);
			f = h == d[B];
			Oa(a, c[Ld](Sd));
			return f
		}

		function hp(a, b) {
			var c = fp(a),
				d = no(arguments, 1),
				f;
			f = c;
			for (var h = 0, j = 0; j < f[B]; j++) ho(d, f[j]) && (mo(f, j--, 1), h++);
			f = h == d[B];
			Oa(a, c[Ld](Sd));
			return f
		};

		function ip(a) {
			return a ? new jp(kp(a)) : cp || (cp = new jp)
		}

		function lp(a) {
			return R(a) ? ja[lb](a) : a
		}

		function mp(a, b) {
			ro(b, function(b, d) {
				d == $l ? a[F].cssText = b : d == Wh ? Oa(a, b) : d == Ki ? a.htmlFor = b : d in np ? a[
					$b](np[d], b) : 0 == d[jd](th, 0) ? a[$b](d, b) : a[d] = b
			})
		}
		var np = {
			cellpadding: "cellPadding",
			cellspacing: "cellSpacing",
			colspan: "colSpan",
			rowspan: "rowSpan",
			valign: "vAlign",
			height: "height",
			width: "width",
			usemap: "useMap",
			frameborder: "frameBorder",
			maxlength: "maxLength",
			type: tm
		};

		function op(a) {
			var b = a[Nc];
			if (Mo && !$o( of ) && !No) {
				"undefined" == typeof a.innerHeight && (a = ba);
				var b = a.innerHeight,
					c = a[Nc][uc][Sb];
				a == a.top && c < b && (b -= 15);
				return new Nn(a.innerWidth, b)
			}
			a = pp(b) ? b[uc] : b[ad];
			return new Nn(a[Jc], a[pd])
		}

		function qp(a) {
			return a ? a.parentWindow || a[ic] : ba
		}

		function rp(a, b, c) {
			return sp(ja, arguments)
		}

		function sp(a, b) {
			var c = b[0],
				d = b[1];
			if (!dp && d && (d[nc] || d[z])) {
				c = [yf, c];
				d[nc] && c[s](Vd, Fn(d[nc]), Xd);
				if (d[z]) {
					c[s](Wd, Fn(d[z]), Xd);
					var f = {};
					zo(f, d);
					d = f;
					delete d[z]
				}
				c[s](Df);
				c = c[Ld](J)
			}
			c = a[Pb](c);
			d && (R(d) ? Oa(c, d) : Q(d) ? gp[Ad](k, [c][ob](d)) : mp(c, d));
			2 < b[B] && tp(a, c, b, 2);
			return c
		}

		function tp(a, b, c, d) {
			function f(c) {
				c && b[Ya](R(c) ? a[qb](c) : c)
			}
			for (; d < c[B]; d++) {
				var h = c[d];
				Ym(h) && !up(h) ? co(vp(h) ? ko(h) : h, f) : f(h)
			}
		}

		function pp(a) {
			return a.compatMode == Qf
		}

		function wp(a, b) {
			tp(kp(a), a, arguments, 1)
		}

		function xp(a) {
			for (var b; b = a[Vb];) a[bd](b)
		}

		function yp(a, b) {
			b[Hd] && b[Hd][vb](a, b)
		}

		function zp(a) {
			return a && a[Hd] ? a[Hd][bd](a) : k
		}

		function up(a) {
			return $m(a) && 0 < a[ib]
		}

		function Ap(a, b) {
			if (a.contains && 1 == b[ib]) return a == b || a.contains(b);
			if ("undefined" != typeof a.compareDocumentPosition) return a == b || Boolean(a
				.compareDocumentPosition(b) & 16);
			for (; b && a != b;) b = b[Hd];
			return b == a
		}

		function kp(a) {
			return 9 == a[ib] ? a : a.ownerDocument || a[Nc]
		}

		function Bp(a, b) {
			if (gm in a) a.textContent = b;
			else if (a[Vb] && 3 == a[Vb][ib]) {
				for (; a[fd] != a[Vb];) a[bd](a[fd]);
				a[Vb].data = b
			} else xp(a), a[Ya](kp(a)[qb](b))
		}

		function Cp(a) {
			if (bl in a) return a.outerHTML;
			var b = kp(a)[Pb](ti);
			b[Ya](a.cloneNode(i));
			return b.innerHTML
		}
		var Dp = {
				SCRIPT: 1,
				STYLE: 1,
				HEAD: 1,
				IFRAME: 1,
				OBJECT: 1
			},
			Ep = {
				IMG: Sd,
				BR: Qd
			};

		function Fp(a) {
			var b = a.getAttributeNode(dm);
			return b && b.specified ? (a = a.tabIndex, an(a) && 0 <= a && 32768 > a) : l
		}

		function Gp(a, b) {
			b ? a.tabIndex = 0 : (a.tabIndex = -1, a.removeAttribute(cm))
		}

		function Hp(a) {
			var b = [];
			Ip(a, b, l);
			return b[Ld](J)
		}

		function Ip(a, b, c) {
			if (!(a[Bb] in Dp))
				if (3 == a[ib]) c ? b[s]((J + a.nodeValue)[u](/(\r\n|\r|\n)/g, J)) : b[s](a.nodeValue);
				else if (a[Bb] in Ep) b[s](Ep[a[Bb]]);
			else
				for (a = a[Vb]; a;) Ip(a, b, c), a = a[oc]
		}

		function vp(a) {
			if (a && typeof a[B] == K) {
				if ($m(a)) return typeof a.item == Mi || typeof a.item == M;
				if (bn(a)) return typeof a.item == Mi
			}
			return l
		}

		function jp(a) {
			this.o = a || O[Nc] || ja
		}
		N = jp[D];
		N.t = ip;
		N.a = function(a) {
			return R(a) ? this.o[lb](a) : a
		};
		N.setProperties = mp;
		N.Tj = function(a) {
			a = a || this.ed();
			return op(a || ba)
		};
		N.d = function(a, b, c) {
			return sp(this.o, arguments)
		};
		N.createElement = function(a) {
			return this.o[Pb](a)
		};
		N.createTextNode = function(a) {
			return this.o[qb](a)
		};
		N.ff = function() {
			return pp(this.o)
		};
		N.ed = function() {
			return this.o.parentWindow || this.o[ic]
		};
		N.Sj = function() {
			return !Mo && pp(this.o) ? this.o[uc] : this.o[ad]
		};
		N.ac = function() {
			var a = this.o,
				b = !Mo && pp(a) ? a[uc] : a[ad],
				a = a.parentWindow || a[ic];
			return new Ln(a.pageXOffset || b[qd], a.pageYOffset || b[xc])
		};
		N.appendChild = function(a, b) {
			a[Ya](b)
		};
		N.vg = xp;
		N.se = yp;
		N.removeNode = zp;
		Ua(N, Ap);
		var Jp = "StopIteration" in O ? O.StopIteration : n("StopIteration");

		function Kp() {}
		Pa(Kp[D], function() {
			e(Jp)
		});
		Kp[D].Qd = function() {
			return this
		};

		function Lp(a) {
			if (typeof a.Ja == Mi) return a.Ja();
			if (R(a)) return a[Pc](J);
			if (Ym(a)) {
				for (var b = [], c = a[B], d = 0; d < c; d++) b[s](a[d]);
				return b
			}
			return so(a)
		}

		function Mp(a, b, c) {
			if (typeof a[Xb] == Mi) a[Xb](b, c);
			else if (Ym(a) || R(a)) co(a, b, c);
			else {
				var d;
				if (typeof a.Tb == Mi) d = a.Tb();
				else if (typeof a.Ja != Mi)
					if (Ym(a) || R(a)) {
						d = [];
						for (var f = a[B], h = 0; h < f; h++) d[s](h)
					} else d = to(a);
				else d = g;
				for (var f = Lp(a), h = f[B], j = 0; j < h; j++) b[G](c, f[j], d && d[j], a)
			}
		};

		function Np(a, b) {
			this.O = {};
			this.D = [];
			var c = arguments[B];
			if (1 < c) {
				c % 2 && e(n("Uneven number of arguments"));
				for (var d = 0; d < c; d += 2) this.set(arguments[d], arguments[d + 1])
			} else a && this.mf(a)
		}
		N = Np[D];
		N.m = 0;
		N.Jb = 0;
		N.Nd = function() {
			return this.m
		};
		N.Ja = function() {
			this.Bd();
			for (var a = [], b = 0; b < this.D[B]; b++) a[s](this.O[this.D[b]]);
			return a
		};
		N.Tb = function() {
			this.Bd();
			return this.D[ob]()
		};
		N.Pa = function(a) {
			return Op(this.O, a)
		};
		Ea(N, function() {
			this.O = {};
			Ma(this.D, 0);
			this.Jb = this.m = 0
		});
		N.remove = function(a) {
			return Op(this.O, a) ? (delete this.O[a], this.m--, this.Jb++, this.D[B] > 2 * this.m && this
				.Bd(), i) : l
		};
		N.Bd = function() {
			if (this.m != this.D[B]) {
				for (var a = 0, b = 0; a < this.D[B];) {
					var c = this.D[a];
					Op(this.O, c) && (this.D[b++] = c);
					a++
				}
				Ma(this.D, b)
			}
			if (this.m != this.D[B]) {
				for (var d = {}, b = a = 0; a < this.D[B];) c = this.D[a], Op(d, c) || (this.D[b++] = c, d[
					c] = 1), a++;
				Ma(this.D, b)
			}
		};
		N.get = function(a, b) {
			return Op(this.O, a) ? this.O[a] : b
		};
		N.set = function(a, b) {
			Op(this.O, a) || (this.m++, this.D[s](a), this.Jb++);
			this.O[a] = b
		};
		N.mf = function(a) {
			var b;
			a instanceof Np ? (b = a.Tb(), a = a.Ja()) : (b = to(a), a = so(a));
			for (var c = 0; c < b[B]; c++) this.set(b[c], a[c])
		};
		Ra(N, function() {
			return new Np(this)
		});
		N.Qd = function(a) {
			this.Bd();
			var b = 0,
				c = this.D,
				d = this.O,
				f = this.Jb,
				h = this,
				j = new Kp;
			Pa(j, function() {
				for (;;) {
					f != h.Jb && e(n("The map has changed since the iterator was created"));
					b >= c[B] && e(Jp);
					var j = c[b++];
					return a ? j : d[j]
				}
			});
			return j
		};

		function Op(a, b) {
			return da[D][Yc][G](a, b)
		};

		function Pp(a) {
			this.O = new Np;
			a && this.mf(a)
		}

		function Qp(a) {
			var b = typeof a;
			return b == Uk && a || b == Mi ? Tk + cn(a) : b[vc](0, 1) + a
		}
		N = Pp[D];
		N.Nd = function() {
			return this.O.Nd()
		};
		N.add = function(a) {
			this.O.set(Qp(a), a)
		};
		N.mf = function(a) {
			for (var a = Lp(a), b = a[B], c = 0; c < b; c++) this.add(a[c])
		};
		N.removeAll = function(a) {
			for (var a = Lp(a), b = a[B], c = 0; c < b; c++) this[Mb](a[c])
		};
		N.remove = function(a) {
			return this.O[Mb](Qp(a))
		};
		Ea(N, function() {
			this.O.clear()
		});
		Ua(N, function(a) {
			return this.O.Pa(Qp(a))
		});
		N.Ng = function(a) {
			for (var b = new Pp, a = Lp(a), c = 0; c < a[B]; c++) {
				var d = a[c];
				this.contains(d) && b.add(d)
			}
			return b
		};
		N.Ja = function() {
			return this.O.Ja()
		};
		Ra(N, function() {
			return new Pp(this)
		});
		N.Qd = function() {
			return this.O.Qd(l)
		};

		function Rp() {}
		Rp[D].Rc = l;
		Rp[D].Q = function() {
			if (!this.Rc) this.Rc = i, this.k()
		};
		Rp[D].k = function() {
			this.Uk && Sp[Ad](k, this.Uk)
		};

		function Tp(a) {
			a && typeof a.Q == Mi && a.Q()
		}

		function Sp(a) {
			for (var b = 0, c = arguments[B]; b < c; ++b) {
				var d = arguments[b];
				Ym(d) ? Sp[Ad](k, d) : Tp(d)
			}
		};

		function Up(a) {
			Up[Sd](a);
			return a
		}
		Up[Sd] = Tm;
		var Vp = !T || bp(9),
			Wp = !T || bp(9),
			Xp = T && !$o(tf);
		!Mo || $o(qf);
		Lo && $o("1.9b") || T && $o(tf) || Ko && $o("9.5") || Mo && $o(qf);
		!Lo || $o(tf);

		function Yp(a, b) {
			Ca(this, a);
			Sa(this, b);
			sa(this, this[ed])
		}
		S(Yp, Rp);
		N = Yp[D];
		N.k = function() {
			delete this[z];
			delete this[ed];
			delete this[Cb]
		};
		N.Rb = l;
		N.Lc = i;
		N.stopPropagation = function() {
			this.Rb = i
		};
		N.preventDefault = function() {
			this.Lc = l
		};

		function Zp(a) {
			a[ub]()
		};

		function $p(a, b) {
			a && this.Pb(a, b)
		}
		S($p, Yp);
		var aq = [1, 4, 2];
		N = $p[D];
		Sa(N, k);
		N.relatedTarget = k;
		N.offsetX = 0;
		N.offsetY = 0;
		Ha(N, 0);
		Ia(N, 0);
		va(N, 0);
		wa(N, 0);
		N.button = 0;
		ya(N, 0);
		N.charCode = 0;
		N.ctrlKey = l;
		N.altKey = l;
		N.shiftKey = l;
		N.metaKey = l;
		N.Ze = l;
		N.Y = k;
		N.Pb = function(a, b) {
			var c = Ca(this, a[z]);
			Yp[G](this, c);
			Sa(this, a[ed] || a.srcElement);
			sa(this, b);
			var d = a[eb];
			if (d) {
				if (Lo) {
					var f;
					a: {
						try {
							Up(d[Bb]);
							f = i;
							break a
						} catch (h) {}
						f = l
					}
					f || (d = k)
				}
			} else if (c == Jk) d = a.fromElement;
			else if (c == Ik) d = a.toElement;
			this.relatedTarget = d;
			this.offsetX = Mo || a.offsetX !== g ? a.offsetX : a.layerX;
			this.offsetY = Mo || a.offsetY !== g ? a.offsetY : a.layerY;
			Ha(this, a[sc] !== g ? a[sc] : a.pageX);
			Ia(this, a[tc] !== g ? a[tc] : a.pageY);
			va(this, a[Eb] || 0);
			wa(this, a[Fb] || 0);
			this.button = a.button;
			ya(this, a[Tb] || 0);
			this.charCode =
				a[Lb] || (c == ok ? a[Tb] : 0);
			this.ctrlKey = a[Oc];
			this.altKey = a[zc];
			this.shiftKey = a[Bd];
			this.metaKey = a[xb];
			this.Ze = Fo ? a[xb] : a[Oc];
			this.state = a.state;
			this.Y = a;
			delete this.Lc;
			delete this.Rb
		};
		N.Xk = function(a) {
			return Vp ? this.Y.button == a : this[z] == Xh ? 0 == a : !!(this.Y.button & aq[a])
		};
		N.ne = function() {
			return this.Xk(0) && !(Mo && Fo && this[Oc])
		};
		N.stopPropagation = function() {
			$p.b[Sc][G](this);
			this.Y[Sc] ? this.Y[Sc]() : this.Y.cancelBubble = i
		};
		N.preventDefault = function() {
			$p.b[ub][G](this);
			var a = this.Y;
			if (a[ub]) a[ub]();
			else if (a.returnValue = l, Xp) try {
				(a[Oc] || 112 <= a[Tb] && 123 >= a[Tb]) && ya(a, -1)
			} catch (b) {}
		};
		N.sj = function() {
			return this.Y
		};
		N.k = function() {
			$p.b.k[G](this);
			this.Y = k;
			Sa(this, k);
			sa(this, k);
			this.relatedTarget = k
		};

		function bq() {}
		var cq = 0;
		N = bq[D];
		N.key = 0;
		N.Ib = l;
		N.gh = l;
		N.Pb = function(a, b, c, d, f, h) {
			bn(a) ? this.eh = i : a && a[bc] && bn(a[bc]) ? this.eh = l : e(n(pg));
			this.kc = a;
			this.Ig = b;
			this.src = c;
			Ca(this, d);
			this.capture = !!f;
			this.td = h;
			this.gh = l;
			this.key = ++cq;
			this.Ib = l
		};
		za(N, function(a) {
			return this.eh ? this.kc[G](this.td || this.src, a) : this.kc[bc][G](this.kc, a)
		});
		var dq = {},
			eq = {},
			fq = {},
			gq = {};

		function hq(a, b, c, d, f) {
			if (b) {
				if (Q(b)) {
					for (var h = 0; h < b[B]; h++) hq(a, b[h], c, d, f);
					return k
				}
				var d = !!d,
					j = eq;
				b in j || (j[b] = {
					m: 0,
					la: 0
				});
				j = j[b];
				d in j || (j[d] = {
					m: 0,
					la: 0
				}, j.m++);
				var j = j[d],
					o = cn(a),
					r;
				j.la++;
				if (j[o]) {
					r = j[o];
					for (h = 0; h < r[B]; h++)
						if (j = r[h], j.kc == c && j.td == f) {
							if (j.Ib) break;
							return r[h].key
						}
				} else r = j[o] = [], j.m++;
				h = iq();
				h.src = a;
				j = new bq;
				j.Pb(c, h, a, b, d, f);
				c = j.key;
				h.key = c;
				r[s](j);
				dq[c] = j;
				fq[o] || (fq[o] = []);
				fq[o][s](j);
				a.addEventListener ? (a == O || !a.Dg) && a.addEventListener(b, h, d) : a.attachEvent(b in gq ?
					gq[b] :
					gq[b] = Vk + b, h);
				return c
			}
			e(n("Invalid event type"))
		}

		function iq() {
			var a = jq,
				b = Wp ? function(c) {
					return a[G](b.src, b.key, c)
				} : function(c) {
					c = a[G](b.src, b.key, c);
					if (!c) return c
				};
			return b
		}

		function kq(a, b, c, d, f) {
			if (Q(b)) {
				for (var h = 0; h < b[B]; h++) kq(a, b[h], c, d, f);
				return k
			}
			d = !!d;
			a = lq(a, b, d);
			if (!a) return l;
			for (h = 0; h < a[B]; h++)
				if (a[h].kc == c && a[h][zb] == d && a[h].td == f) return mq(a[h].key);
			return l
		}

		function mq(a) {
			if (!dq[a]) return l;
			var b = dq[a];
			if (b.Ib) return l;
			var c = b.src,
				d = b[z],
				f = b.Ig,
				h = b[zb];
			c.removeEventListener ? (c == O || !c.Dg) && c.removeEventListener(d, f, h) : c.detachEvent && c
				.detachEvent(d in gq ? gq[d] : gq[d] = Vk + d, f);
			c = cn(c);
			f = eq[d][h][c];
			if (fq[c]) {
				var j = fq[c];
				io(j, b);
				0 == j[B] && delete fq[c]
			}
			b.Ib = i;
			f.Rg = i;
			nq(d, h, c, f);
			delete dq[a];
			return i
		}

		function nq(a, b, c, d) {
			if (!d.Id && d.Rg) {
				for (var f = 0, h = 0; f < d[B]; f++) d[f].Ib ? d[f].Ig.src = k : (f != h && (d[h] = d[f]),
				h++);
				Ma(d, h);
				d.Rg = l;
				0 == h && (delete eq[a][b][c], eq[a][b].m--, 0 == eq[a][b].m && (delete eq[a][b], eq[a].m--),
					0 == eq[a].m && delete eq[a])
			}
		}

		function oq(a, b, c) {
			var d = 0,
				f = b == k,
				h = c == k,
				c = !!c;
			if (a == k) ro(fq, function(a) {
				for (var j = a[B] - 1; 0 <= j; j--) {
					var o = a[j];
					if ((f || b == o[z]) && (h || c == o[zb])) mq(o.key), d++
				}
			});
			else if (a = cn(a), fq[a])
				for (var a = fq[a], j = a[B] - 1; 0 <= j; j--) {
					var o = a[j];
					if ((f || b == o[z]) && (h || c == o[zb])) mq(o.key), d++
				}
			return d
		}

		function lq(a, b, c) {
			var d = eq;
			return b in d && (d = d[b], c in d && (d = d[c], a = cn(a), d[a])) ? d[a] : k
		}

		function pq(a, b, c, d, f) {
			var h = 1,
				b = cn(b);
			if (a[b]) {
				a.la--;
				a = a[b];
				a.Id ? a.Id++ : a.Id = 1;
				try {
					for (var j = a[B], o = 0; o < j; o++) {
						var r = a[o];
						r && !r.Ib && (h &= qq(r, f) !== l)
					}
				} finally {
					a.Id--, nq(c, d, b, a)
				}
			}
			return Boolean(h)
		}

		function qq(a, b) {
			var c = a[bc](b);
			a.gh && mq(a.key);
			return c
		}

		function rq(a, b) {
			var c = b[z] || b,
				d = eq;
			if (!(c in d)) return i;
			if (R(b)) b = new Yp(b, a);
			else if (b instanceof Yp) Sa(b, b[ed] || a);
			else {
				var f = b,
					b = new Yp(c, a);
				zo(b, f)
			}
			var f = 1,
				h, d = d[c],
				c = i in d,
				j;
			if (c) {
				h = [];
				for (j = a; j; j = j.md) h[s](j);
				j = d[i];
				j.la = j.m;
				for (var o = h[B] - 1; !b.Rb && 0 <= o && j.la; o--) sa(b, h[o]), f &= pq(j, h[o], b[z], i,
					b) && b.Lc != l
			}
			if (l in d)
				if (j = d[l], j.la = j.m, c)
					for (o = 0; !b.Rb && o < h[B] && j.la; o++) sa(b, h[o]), f &= pq(j, h[o], b[z], l, b) && b
						.Lc != l;
				else
					for (d = a; !b.Rb && d && j.la; d = d.md) sa(b, d), f &= pq(j, d, b[z], l, b) && b.Lc != l;
			return Boolean(f)
		}

		function jq(a, b) {
			if (!dq[a]) return i;
			var c = dq[a],
				d = c[z],
				f = eq;
			if (!(d in f)) return i;
			var f = f[d],
				h, j;
			if (!Wp) {
				h = b || Sm(Hm);
				var o = i in f,
					r = l in f;
				if (o) {
					if (0 > h[Tb] || h.returnValue != g) return i;
					a: {
						var w = l;
						if (0 == h[Tb]) try {
							ya(h, -1);
							break a
						} catch (C) {
							w = i
						}
						if (w || h.returnValue == g) h.returnValue = i
					}
				}
				w = new $p;
				w.Pb(h, this);
				h = i;
				try {
					if (o) {
						for (var L = [], ta = w[Cb]; ta; ta = ta[Hd]) L[s](ta);
						j = f[i];
						j.la = j.m;
						for (var ia = L[B] - 1; !w.Rb && 0 <= ia && j.la; ia--) sa(w, L[ia]), h &= pq(j, L[ia],
							d, i, w);
						if (r) {
							j = f[l];
							j.la = j.m;
							for (ia = 0; !w.Rb && ia < L[B] && j.la; ia++) sa(w,
								L[ia]), h &= pq(j, L[ia], d, l, w)
						}
					} else h = qq(c, w)
				} finally {
					L && Ma(L, 0), w.Q()
				}
				return h
			}
			d = new $p(b, this);
			try {
				h = qq(c, d)
			} finally {
				d.Q()
			}
			return h
		};

		function sq() {}
		S(sq, Rp);
		N = sq[D];
		N.Dg = i;
		N.md = k;
		N.Qe = function(a) {
			this.md = a
		};
		N.addEventListener = function(a, b, c, d) {
			hq(this, a, b, c, d)
		};
		N.removeEventListener = function(a, b, c, d) {
			kq(this, a, b, c, d)
		};
		N.dispatchEvent = function(a) {
			return rq(this, a)
		};
		N.k = function() {
			sq.b.k[G](this);
			oq(this);
			this.md = k
		};

		function tq(a, b) {
			this.Kd = a || 1;
			this.Dc = b || uq;
			this.nf = jn(this.ek, this);
			this.of = ln()
		}
		S(tq, sq);
		tq[D].enabled = l;
		var uq = O.window;
		N = tq[D];
		N.ga = k;
		N.ek = function() {
			if (this.enabled) {
				var a = ln() - this.of;
				if (0 < a && a < 0.8 * this.Kd) this.ga = this.Dc[Lc](this.nf, this.Kd - a);
				else if (this.Rj(), this.enabled) this.ga = this.Dc[Lc](this.nf, this.Kd), this.of = ln()
			}
		};
		N.Rj = function() {
			this[x](hm)
		};
		N.start = function() {
			this.enabled = i;
			if (!this.ga) this.ga = this.Dc[Lc](this.nf, this.Kd), this.of = ln()
		};
		N.stop = function() {
			this.enabled = l;
			if (this.ga) this.Dc[fb](this.ga), this.ga = k
		};
		N.k = function() {
			tq.b.k[G](this);
			this.stop();
			delete this.Dc
		};

		function vq() {}
		vq[D].Gh = k;
		vq[D].getOptions = function() {
			return this.Gh || (this.Gh = this.Jk())
		};
		var wq;

		function xq() {}
		S(xq, vq);
		xq[D].Ah = function() {
			var a = this.Jh();
			return a ? new ActiveXObject(a) : new XMLHttpRequest
		};
		xq[D].Jk = function() {
			var a = {};
			this.Jh() && (a[0] = i, a[1] = i);
			return a
		};
		xq[D].If = k;
		xq[D].Jh = function() {
			if (!this.If && "undefined" == typeof XMLHttpRequest && "undefined" != typeof ActiveXObject) {
				for (var a = [wg, vg, ug, xg], b = 0; b < a[B]; b++) {
					var c = a[b];
					try {
						return new ActiveXObject(c), this.If = c
					} catch (d) {}
				}
				e(n("Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed"))
			}
			return this.If
		};
		wq = new xq;

		function yq(a) {
			this.headers = new Np;
			this.ud = a || k
		}
		S(yq, sq);
		var zq = /^https?$/i,
			Aq = [];

		function Bq(a) {
			a.Q();
			io(Aq, a)
		}
		N = yq[D];
		N.eb = l;
		N.u = k;
		N.od = k;
		N.mg = J;
		N.ui = J;
		N.Bc = 0;
		N.Hb = J;
		N.Ge = l;
		N.ld = l;
		N.Ce = l;
		N.Fb = l;
		N.vd = 0;
		N.Nb = k;
		N.ng = J;
		N.wi = l;
		N.gl = function(a) {
			this.vd = q.max(0, a)
		};
		N.send = function(a, b, c, d) {
			this.u && e(n("[goog.net.XhrIo] Object is active with another request"));
			b = b ? b.toUpperCase() : cg;
			this.mg = a;
			this.Hb = J;
			this.Bc = 0;
			this.ui = b;
			this.Ge = l;
			this.eb = i;
			this.u = this.ti();
			this.od = this.ud ? this.ud[mb]() : wq[mb]();
			this.u.onreadystatechange = jn(this.cg, this);
			try {
				this.Ce = i, this.u[bb](b, a, i), this.Ce = l
			} catch (f) {
				this.lg(5, f);
				return
			}
			var a = c || J,
				h = this.headers[cd]();
			d && Mp(d, function(a, b) {
				h.set(b, a)
			});
			b == Fg && !h.Pa(Uf) && h.set(Uf, sh);
			Mp(h, function(a, b) {
				this.u.setRequestHeader(b, a)
			}, this);
			if (this.ng) this.u.responseType = this.ng;
			if (Im in this.u) this.u.withCredentials = this.wi;
			try {
				if (this.Nb) uq[fb](this.Nb), this.Nb = k;
				if (0 < this.vd) this.Nb = uq[Lc](jn(this.vi, this), this.vd);
				this.ld = i;
				this.u[Jb](a);
				this.ld = l
			} catch (j) {
				this.lg(5, j)
			}
		};
		N.ti = function() {
			return this.ud ? this.ud.Ah() : wq.Ah()
		};
		N.vi = function() {
			if ("undefined" != typeof Rm && this.u) this.Hb = Tg + this.vd + Lk, this.Bc = 8, this[x](jm),
				this[Kc](8)
		};
		N.lg = function(a, b) {
			this.eb = l;
			if (this.u) this.Fb = i, this.u[Kc](), this.Fb = l;
			this.Hb = b;
			this.Bc = a;
			this.wg();
			this.dd()
		};
		N.wg = function() {
			if (!this.Ge) this.Ge = i, this[x](ai), this[x](Ci)
		};
		N.abort = function(a) {
			if (this.u && this.eb) this.eb = l, this.Fb = i, this.u[Kc](), this.Fb = l, this.Bc = a || 7,
				this[x](ai), this[x](kh), this.dd()
		};
		N.k = function() {
			if (this.u) {
				if (this.eb) this.eb = l, this.Fb = i, this.u[Kc](), this.Fb = l;
				this.dd(i)
			}
			yq.b.k[G](this)
		};
		N.cg = function() {
			!this.Ce && !this.ld && !this.Fb ? this.xf() : this.lh()
		};
		N.xf = function() {
			this.lh()
		};
		N.lh = function() {
			if (this.eb && "undefined" != typeof Rm && (!this.od[1] || !(4 == this.Kc() && 2 == this.df())))
				if (this.ld && 4 == this.Kc()) uq[Lc](jn(this.cg, this), 0);
				else if (this[x](tl), this.vj()) this.eb = l, this.Lg() ? (this[x](ai), this[x](bm)) : (this
				.Bc = 6, this.Hb = this.uj() + Td + this.df() + gh, this.wg()), this.dd()
		};
		N.dd = function(a) {
			if (this.u) {
				var b = this.u,
					c = this.od[0] ? Tm : k;
				this.od = this.u = k;
				if (this.Nb) uq[fb](this.Nb), this.Nb = k;
				a || this[x](sl);
				try {
					b.onreadystatechange = c
				} catch (d) {}
			}
		};
		N.Da = function() {
			return !!this.u
		};
		N.vj = function() {
			return 4 == this.Kc()
		};
		N.Lg = function() {
			var a = this.df(),
				b;
			a: switch (a) {
				case 200:
				case 201:
				case 202:
				case 204:
				case 304:
				case 1223:
					b = i;
					break a;
				default:
					b = l
			}
			return b || 0 === a && !this.Gk()
		};
		N.Gk = function() {
			var a = Qn(1, J + this.mg);
			if (!a && self[Uc]) a = self[Uc].protocol, a = a[vc](0, a[B] - 1);
			return zq[cb](a ? a[Od]() : J)
		};
		N.Kc = function() {
			return this.u ? this.u.readyState : 0
		};
		N.df = function() {
			try {
				return 2 < this.Kc() ? this.u.status : -1
			} catch (a) {
				return -1
			}
		};
		N.uj = function() {
			try {
				return 2 < this.Kc() ? this.u.statusText : J
			} catch (a) {
				return J
			}
		};
		N.Dk = function() {
			try {
				return this.u ? this.u.responseText : J
			} catch (a) {
				return J
			}
		};
		N.Ck = function() {
			return R(this.Hb) ? this.Hb : J + this.Hb
		};
		yq.send = function(a, b, c, d, f, h) {
			var j = new yq;
			Aq[s](j);
			b && hq(j, ai, b);
			hq(j, sl, kn(Bq, j));
			h && j.gl(h);
			j[Jb](a, c, d, f)
		};
		yq.Fl = function() {
			for (; Aq[B];) Aq.pop().Q()
		};
		yq.Hl = function(a) {
			yq[D].xf = a.ol(yq[D].xf)
		};
		yq.Gl = Bq;
		yq.sl = Uf;
		yq.vl = sh;
		yq.Jl = Aq;

		function Cq(a, b) {
			var c;
			a instanceof Cq ? (this.fc(b == k ? a.Fa : b), this.zc(a.Ga), this.jd(a.Eb), this.gd(a.hb), this.yc(
				a.Qa), this.xc(a.ja), this.Ae(a.Z[cd]()), this.hd(a.Db)) : a && (c = (J + a)[Gb](On)) ? (
				this.fc(!!b), this.zc(c[1] || J, i), this.jd(c[2] || J, i), this.gd(c[3] || J, i), this.yc(
					c[4]), this.xc(c[5] || J, i), this[$c](c[6] || J, i), this.hd(c[7] || J, i)) : (this.fc(
				!!b), this.Z = new Dq(k, this, this.Fa))
		}
		N = Cq[D];
		N.Ga = J;
		N.Eb = J;
		N.hb = J;
		N.Qa = k;
		N.ja = J;
		N.Db = J;
		N.Yk = l;
		N.Fa = l;
		N.toString = function() {
			if (this.ra) return this.ra;
			var a = [];
			this.Ga && a[s](Eq(this.Ga, Fq), uf);
			this.hb && (a[s]($e), this.Eb && a[s](Eq(this.Eb, Fq), Ff), a[s](R(this.hb) ? aa(this.hb) : k),
				this.Qa != k && a[s](uf, J + this.Qa));
			this.ja && (this.xe() && this.ja[pb](0) != Ye && a[s](Ye), a[s](Eq(this.ja, this.ja[pb](0) ==
				Ye ? Gq : Hq)));
			var b = J + this.Z;
			b && a[s](Ef, b);
			this.Db && a[s](ae, Eq(this.Db, Iq));
			return this.ra = a[Ld](J)
		};
		N.Pj = function(a) {
			var b = this[cd](),
				c = a.Fi();
			c ? b.zc(a.Ga) : c = a.Gi();
			c ? b.jd(a.Eb) : c = a.xe();
			c ? b.gd(a.hb) : c = a.Di();
			var d = a.ja;
			if (c) b.yc(a.Qa);
			else if (c = a.ug()) {
				if (d[pb](0) != Ye)
					if (this.xe() && !this.ug()) d = Ye + d;
					else {
						var f = b.ja[jd](Ye); - 1 != f && (d = b.ja[vc](0, f + 1) + d)
					} f = d;
				if (f == We || f == Ve) d = J;
				else if (-1 == f[v](Xe) && -1 == f[v](Ze)) d = f;
				else {
					for (var d = 0 == f[jd](Ye, 0), f = f[Pc](Ye), h = [], j = 0; j < f[B];) {
						var o = f[j++];
						o == Ve ? d && j == f[B] && h[s](J) : o == We ? ((1 < h[B] || 1 == h[B] && h[0] !=
							J) && h.pop(), d && j == f[B] && h[s](J)) : (h[s](o), d = i)
					}
					d = h[Ld](Ye)
				}
			}
			c ?
				b.xc(d) : c = a.Ei();
			c ? b[$c](a.Bi()) : c = a.Ci();
			c && b.hd(a.Db);
			return b
		};
		Ra(N, function() {
			var a = this.Ga,
				b = this.Eb,
				c = this.hb,
				d = this.Qa,
				f = this.ja,
				h = this.Z[cd](),
				j = this.Db,
				o = new Cq(k, this.Fa);
			a && o.zc(a);
			b && o.jd(b);
			c && o.gd(c);
			d && o.yc(d);
			f && o.xc(f);
			h && o.Ae(h);
			j && o.hd(j);
			return o
		});
		N.zc = function(a, b) {
			this.Ua();
			delete this.ra;
			if (this.Ga = b ? a ? ka(a) : J : a) this.Ga = this.Ga[u](/:$/, J);
			return this
		};
		N.Fi = function() {
			return !!this.Ga
		};
		N.jd = function(a, b) {
			this.Ua();
			delete this.ra;
			this.Eb = b ? a ? ka(a) : J : a;
			return this
		};
		N.Gi = function() {
			return !!this.Eb
		};
		N.gd = function(a, b) {
			this.Ua();
			delete this.ra;
			this.hb = b ? a ? ka(a) : J : a;
			return this
		};
		N.xe = function() {
			return !!this.hb
		};
		N.yc = function(a) {
			this.Ua();
			delete this.ra;
			a ? (a = ca(a), (la(a) || 0 > a) && e(n("Bad port number " + a)), this.Qa = a) : this.Qa = k;
			return this
		};
		N.Di = function() {
			return this.Qa != k
		};
		N.xc = function(a, b) {
			this.Ua();
			delete this.ra;
			this.ja = b ? a ? ka(a) : J : a;
			return this
		};
		N.ug = function() {
			return !!this.ja
		};
		N.Ei = function() {
			return this.Z[yc]() !== J
		};
		N.Ae = function(a, b) {
			this.Ua();
			delete this.ra;
			a instanceof Dq ? (this.Z = a, this.Z.af = this, this.Z.fc(this.Fa)) : (b || (a = Eq(a, Jq)),
				this.Z = new Dq(a, this, this.Fa));
			return this
		};
		N.setQuery = function(a, b) {
			return this.Ae(a, b)
		};
		N.Wk = function() {
			return this.Z[yc]()
		};
		N.Bi = function() {
			return this.Z.pk()
		};
		N.getQuery = function() {
			return this.Wk()
		};
		N.nd = function(a, b) {
			this.Ua();
			delete this.ra;
			this.Z.set(a, b);
			return this
		};
		N.kh = function(a) {
			return this.Z.get(a)
		};
		N.hd = function(a, b) {
			this.Ua();
			delete this.ra;
			this.Db = b ? a ? ka(a) : J : a;
			return this
		};
		N.Ci = function() {
			return !!this.Db
		};
		N.Jj = function() {
			this.Ua();
			this.nd(Lm, q[kb](2147483648 * q.random())[yc](36) + q.abs(q[kb](2147483648 * q.random()) ^
			ln())[yc](36));
			return this
		};
		N.Ua = function() {
			this.Yk && e(n("Tried to modify a read-only Uri"))
		};
		N.fc = function(a) {
			this.Fa = a;
			this.Z && this.Z.fc(a);
			return this
		};
		var Kq = /^[a-zA-Z0-9\-_.!~*'():\/;?]*$/;

		function Eq(a, b) {
			var c = k;
			R(a) && (c = a, Kq[cb](c) || (c = encodeURI(a)), 0 <= c.search(b) && (c = c[u](b, Lq)));
			return c
		}

		function Lq(a) {
			a = a[rd](0);
			return ce + (a >> 4 & 15)[yc](16) + (a & 15)[yc](16)
		}
		var Fq = /[#\/\?@]/g,
			Hq = /[\#\?:]/g,
			Gq = /[\#\?]/g,
			Jq = /[\#\?@]/g,
			Iq = /#/g;

		function Dq(a, b, c) {
			this.Za = a || k;
			this.af = b || k;
			this.Fa = !!c
		}
		N = Dq[D];
		N.Ta = function() {
			if (!this.z && (this.z = new Np, this.m = 0, this.Za))
				for (var a = this.Za[Pc](fe), b = 0; b < a[B]; b++) {
					var c = a[b][v](Cf),
						d = k,
						f = k;
					0 <= c ? (d = a[b][xd](0, c), f = a[b][xd](c + 1)) : d = a[b];
					d = ka(d[u](/\+/g, Sd));
					d = this.Kb(d);
					this.add(d, f ? ka(f[u](/\+/g, Sd)) : J)
				}
		};
		N.z = k;
		N.m = k;
		N.Nd = function() {
			this.Ta();
			return this.m
		};
		N.add = function(a, b) {
			this.Ta();
			this.Fc();
			a = this.Kb(a);
			if (this.Pa(a)) {
				var c = this.z.get(a);
				Q(c) ? c[s](b) : this.z.set(a, [c, b])
			} else this.z.set(a, b);
			this.m++;
			return this
		};
		N.remove = function(a) {
			this.Ta();
			a = this.Kb(a);
			if (this.z.Pa(a)) {
				this.Fc();
				var b = this.z.get(a);
				Q(b) ? this.m -= b[B] : this.m--;
				return this.z[Mb](a)
			}
			return l
		};
		Ea(N, function() {
			this.Fc();
			this.z && this.z.clear();
			this.m = 0
		});
		N.Pa = function(a) {
			this.Ta();
			a = this.Kb(a);
			return this.z.Pa(a)
		};
		N.Tb = function() {
			this.Ta();
			for (var a = this.z.Ja(), b = this.z.Tb(), c = [], d = 0; d < b[B]; d++) {
				var f = a[d];
				if (Q(f))
					for (var h = 0; h < f[B]; h++) c[s](b[d]);
				else c[s](b[d])
			}
			return c
		};
		N.Ja = function(a) {
			this.Ta();
			if (a)
				if (a = this.Kb(a), this.Pa(a)) {
					var b = this.z.get(a);
					if (Q(b)) return b;
					a = [];
					a[s](b)
				} else a = [];
			else
				for (var b = this.z.Ja(), a = [], c = 0; c < b[B]; c++) {
					var d = b[c];
					Q(d) ? lo(a, d) : a[s](d)
				}
			return a
		};
		N.set = function(a, b) {
			this.Ta();
			this.Fc();
			a = this.Kb(a);
			if (this.Pa(a)) {
				var c = this.z.get(a);
				Q(c) ? this.m -= c[B] : this.m--
			}
			this.z.set(a, b);
			this.m++;
			return this
		};
		N.get = function(a, b) {
			this.Ta();
			a = this.Kb(a);
			if (this.Pa(a)) {
				var c = this.z.get(a);
				return Q(c) ? c[0] : c
			}
			return b
		};
		N.toString = function() {
			if (this.Za) return this.Za;
			if (!this.z) return J;
			for (var a = [], b = 0, c = this.z.Tb(), d = 0; d < c[B]; d++) {
				var f = c[d],
					h = En(f),
					f = this.z.get(f);
				if (Q(f))
					for (var j = 0; j < f[B]; j++) 0 < b && a[s](fe), a[s](h), f[j] !== J && a[s](Cf, En(f[
						j])), b++;
				else 0 < b && a[s](fe), a[s](h), f !== J && a[s](Cf, En(f)), b++
			}
			return this.Za = a[Ld](J)
		};
		N.pk = function() {
			if (!this.pc) this.pc = this[yc]() ? ka(this[yc]()) : J;
			return this.pc
		};
		N.Fc = function() {
			delete this.pc;
			delete this.Za;
			this.af && delete this.af.ra
		};
		Ra(N, function() {
			var a = new Dq;
			if (this.pc) a.pc = this.pc;
			if (this.Za) a.Za = this.Za;
			if (this.z) a.z = this.z[cd]();
			return a
		});
		N.Kb = function(a) {
			a = J + a;
			this.Fa && (a = a[Od]());
			return a
		};
		N.fc = function(a) {
			a && !this.Fa && (this.Ta(), this.Fc(), Mp(this.z, function(a, c) {
				var d = c[Od]();
				c != d && (this[Mb](c), this.add(d, a))
			}, this));
			this.Fa = a
		};
		N.extend = function(a) {
			for (var b = 0; b < arguments[B]; b++) Mp(arguments[b], function(a, b) {
				this.add(b, a)
			}, this)
		};

		function Mq(a, b, c) {
			(typeof b != Uk || !(Zh in b)) && e(n(c + ' must have a property "column"'));
			ki in b && typeof b.desc != Ch && e(n('Property "desc" in ' + c + " must be boolean."));
			U(a, b.column)
		}

		function Nq(a, b) {
			if (typeof b == K) return U(a, b), [{
				column: b
			}];
			if (typeof b == Uk) {
				if (Ym(b)) {
					1 > b[B] && e(n("sortColumns is an empty array. Must have at least one element."));
					var c = {};
					if (typeof b[0] == Uk) {
						for (var d = 0; d < b[B]; d++) {
							Mq(a, b[d], Tl + d + gh);
							var f = b[d].column;
							f in c && e(n(Sf + f + Ud));
							c[f] = i
						}
						return b
					}
					if (typeof b[0] == K) {
						for (var h = [], d = 0; d < b[B]; d++) U(a, b[d]), b[d] in c && e(n(Sf + f + Ud)), c[
							f] = i, h[s]({
								column: b[d]
							});
						return h
					}
					e(n("sortColumns is an array, but neither of objects nor of numbers. Must be either of those."))
				}
				Mq(a,
					b, Sl);
				return [b]
			}
		}

		function Oq(a, b) {
			var c = a[Dc]();
			0 < c ? (q[kb](b) !== b || 0 > b || b >= c) && e(n("Invalid row index " + b +
				". Should be in the range [0-" + (c - 1) + "].")) : e(n("Table has no rows."))
		}

		function U(a, b) {
			var c = a[rb]();
			0 < c ? (q[kb](b) !== b || 0 > b || b >= c) && e(n("Invalid column index " + b +
				". Should be an integer in the range [0-" + (c - 1) + "].")) : e(n("Table has no columns."))
		}

		function Pq(a, b, c) {
			if (c != k) {
				var a = a[Ub](b),
					d = typeof c;
				switch (a) {
					case K:
						if (d == K) return;
						break;
					case M:
						if (d == M) return;
						break;
					case Ch:
						if (d == Ch) return;
						break;
					case gi:
					case hi:
						if (Zm(c)) return;
						break;
					case im:
						if (Ym(c) && 2 < c[B] && 5 > c[B]) {
							for (var d = i, f = 0; f < c[B]; f++) {
								var h = c[f];
								if (typeof h != K || h != q[kb](h)) {
									d = l;
									break
								}
							}
							if (0 > c[0] || 23 < c[0] || 0 > c[1] || 59 < c[1] || 0 > c[2] || 59 < c[2]) d = l;
							if (4 == c[B] && (0 > c[3] || 999 < c[3])) d = l;
							if (d) return
						}
				}
				e(n("Type mismatch. Value " + c + " does not match type " + a + " in column index " + b))
			}
		}

		function Qq(a, b, c) {
			if (b == k) return c == k ? 0 : -1;
			if (c == k) return 1;
			switch (a) {
				case Ch:
				case K:
				case M:
				case gi:
				case hi:
					return b < c ? -1 : c < b ? 1 : 0;
				case im:
					for (a = 0; 3 > a; a++) {
						if (b[a] < c[a]) return -1;
						if (c[a] < b[a]) return 1
					}
					b = 4 > b[B] ? 0 : b[3];
					c = 4 > c[B] ? 0 : c[3];
					return b < c ? -1 : c < b ? 1 : 0
			}
		}

		function Rq(a, b) {
			U(a, b);
			var c = a[Ub](b),
				d = k,
				f = k,
				h, j, o = a[Dc]();
			for (h = 0; h < o; h++)
				if (j = a[A](h, b), P(j)) {
					f = d = j;
					break
				} if (d == k) return {
				min: k,
				max: k
			};
			for (h++; h < o; h++) j = a[A](h, b), P(j) && (0 > Qq(c, j, d) ? d = j : 0 > Qq(c, f, j) && (f =
			j));
			return {
				min: d,
				max: f
			}
		}

		function Sq(a, b) {
			for (var b = Nq(a, b), c = [], d = a[Dc](), f = 0; f < d; f++) c[s](f);
			qo(c, function(c, d) {
				for (var f = 0; f < b[B]; f++) {
					var r = b[f],
						w = r.column,
						w = Qq(a[Ub](w), a[A](c, w), a[A](d, w));
					if (0 != w) return w * (r.desc ? -1 : 1)
				}
				return 0
			});
			return c
		}

		function Tq(a, b) {
			U(a, b);
			var c = a[Dc]();
			if (0 == c) return [];
			for (var d = [], f = 0; f < c; ++f) d[s](a[A](f, b));
			var h = a[Ub](b);
			qo(d, function(a, b) {
				return Qq(h, a, b)
			});
			var c = d[0],
				j = [];
			j[s](c);
			for (f = 1; f < d[B]; f++) {
				var o = d[f];
				0 != Qq(h, o, c) && j[s](o);
				c = o
			}
			return j
		}

		function Uq(a, b, c) {
			for (var d = 0; d < b[B]; d++) {
				var f = b[d],
					h = f.column,
					j = a[A](c, h),
					h = a[Ub](h);
				if (f.minValue != k || f.maxValue != k) {
					if (j == k) return l;
					if (f.minValue != k && 0 > Qq(h, j, f.minValue)) return l;
					if (f.maxValue != k && 0 < Qq(h, j, f.maxValue)) return l
				} else if (0 != Qq(h, j, f[sb])) return l
			}
			return i
		}

		function Vq(a, b) {
			(!Ym(b) || 0 == b[B]) && e(n("columnFilters must be a non-empty array"));
			for (var c = {}, d = 0; d < b[B]; d++) {
				if (typeof b[d] != Uk || !(Zh in b[d])) zm in b[d] || Dk in b[d] || yk in b[d] ? zm in b[d] && (
					Dk in b[d] || yk in b[d]) && e(n($h + d +
					'] must specify either "value" or range properties ("minValue" and/or "maxValue"')) : e(
					n($h + d + '] must have properties "column" and "value", "minValue"or "maxValue"'));
				var f = b[d].column;
				f in c && e(n(Sf + f + " is duplicate in columnFilters."));
				U(a, f);
				Pq(a, f, b[d][sb]);
				c[f] = i
			}
			c = [];
			d = a[Dc]();
			for (f = 0; f < d; f++) Uq(a, b, f) && c[s](f);
			return c
		}

		function Wq(a, b) {
			var c;
			b == im ? (c = [], c[s](a[0]), c[s]((10 > a[1] ? ff : J) + a[1]), c[s]((10 > a[2] ? ff : J) + a[2]),
				c = c[Ld](uf), 3 < a[B] && 0 < a[3] && (c += Ve + (10 > a[3] ? jf : 100 > a[3] ? ff : J) +
					a[3])) : b == gi ? (c = new google[E].DateFormat({
				formatType: zk,
				valueType: gi
			}), c = c.formatValue(a)) : b == hi ? (c = new google[E].DateFormat({
				formatType: zk,
				valueType: hi
			}), c = c.formatValue(a)) : c = J + a;
			return c
		}

		function Xq(a, b, c, d) {
			for (var f = k, h = a[Dc]();
				(d ? 0 <= b : b < h) && Xm(f);) f = a[A](b, c), b += d ? -1 : 1;
			return f
		};

		function V(a, b) {
			this.Jb = b ? b == gf ? gf : hf : hf;
			if (a) {
				if (R(a)) a = xn(a);
				else a: for (var c = a.cols || [], d = a[zd] || [], f = c[B], h = 0; h < f; h++) {
					var j = c[h][z];
					if (j == gi || j == hi)
						for (var j = d[B], o = 0; o < j; o++) {
							var r = d[o].c[h];
							if (r) {
								var w = r.v;
								if (Zm(w)) break a;
								R(w) && (r = un(r), r = xn(r), d[o].c[h] = r)
							}
						}
				}
				this.B = a.cols || [];
				this.G = a[zd] || [];
				this.$a = a.p || k
			} else this.B = [], this.G = [], this.$a = k
		}
		var Yq = {
			rl: Ch,
			xl: K,
			zl: M,
			tl: gi,
			Al: im,
			ul: hi
		};
		N = V[D];
		N.B = k;
		N.Jb = k;
		N.G = k;
		N.$a = k;
		N.getNumberOfRows = function() {
			return this.G[B]
		};
		N.getNumberOfColumns = function() {
			return this.B[B]
		};
		Ra(N, function() {
			return new V(this[Hc]())
		});
		N.getColumnId = function(a) {
			U(this, a);
			return this.B[a].id || J
		};
		N.getColumnIndex = function(a) {
			for (var b = this.B, c = 0; c < b[B]; c++)
				if (b[c].id == a) return c;
			return -1
		};
		N.getColumnLabel = function(a) {
			U(this, a);
			return this.B[a][Id] || J
		};
		N.getColumnPattern = function(a) {
			U(this, a);
			return this.B[a].pattern
		};
		N.getColumnRole = function(a) {
			a = this[Qc](a, Bl);
			return a = R(a) ? a : J
		};
		N.getColumnType = function(a) {
			U(this, a);
			return this.B[a][z]
		};
		Ga(N, function(a, b) {
			Oq(this, a);
			U(this, b);
			var c = this.Nc(a, b),
				d = k;
			if (c) d = c.v, d = Wm(d) ? d : k;
			return d
		});
		N.Nc = function(a, b) {
			return this.G[a].c[b]
		};
		N.getFormattedValue = function(a, b) {
			Oq(this, a);
			U(this, b);
			var c = this.Nc(a, b),
				d = J;
			if (c)
				if ("undefined" != typeof c.f && c.f != k) d = c.f;
				else if (c = this[A](a, b), !Xm(c)) return Wq(c, this[Ub](b));
			return d
		};
		N.getProperty = function(a, b, c) {
			Oq(this, a);
			U(this, b);
			return (a = (a = this.Nc(a, b)) && a.p) && c in a ? a[c] : k
		};
		N.getProperties = function(a, b) {
			Oq(this, a);
			U(this, b);
			var c = this.Nc(a, b);
			c || (c = {
				v: k,
				f: k
			}, this.G[a].c[b] = c);
			c.p || (c.p = {});
			return c.p
		};
		N.getTableProperties = function() {
			return this.$a
		};
		N.getTableProperty = function(a) {
			var b = this.$a;
			return b && a in b ? b[a] : k
		};
		N.setTableProperties = function(a) {
			this.$a = a
		};
		N.setTableProperty = function(a, b) {
			if (!this.$a) this.$a = {};
			this.$a[a] = b
		};
		Na(N, function(a, b, c) {
			this[jc](a, b, c, g, g)
		});
		N.setFormattedValue = function(a, b, c) {
			this[jc](a, b, g, c, g)
		};
		N.setProperties = function(a, b, c) {
			this[jc](a, b, g, g, c)
		};
		N.setProperty = function(a, b, c, d) {
			this[Fc](a, b)[c] = d
		};
		N.setCell = function(a, b, c, d, f) {
			Oq(this, a);
			U(this, b);
			var h = this.Nc(a, b);
			h || (h = {}, this.G[a].c[b] = h);
			if ("undefined" != typeof c) Pq(this, b, c), h.v = c;
			"undefined" != typeof d && (h.f = d);
			Wm(f) && (h.p = $m(f) ? f : {})
		};
		N.setRowProperties = function(a, b) {
			Oq(this, a);
			this.G[a].p = b
		};
		N.setRowProperty = function(a, b, c) {
			this[cc](a)[b] = c
		};
		N.getRowProperty = function(a, b) {
			Oq(this, a);
			var c = this.G[a];
			return (c = c && c.p) && b in c ? c[b] : k
		};
		N.getRowProperties = function(a) {
			Oq(this, a);
			a = this.G[a];
			a.p || (a.p = {});
			return a.p
		};
		N.setColumnLabel = function(a, b) {
			U(this, a);
			this.B[a].label = b
		};
		N.setColumnProperties = function(a, b) {
			U(this, a);
			this.B[a].p = b
		};
		N.setColumnProperty = function(a, b, c) {
			this[Ab](a)[b] = c
		};
		N.getColumnProperty = function(a, b) {
			U(this, a);
			var c = this.B[a];
			return (c = c && c.p) && b in c ? c[b] : k
		};
		N.getColumnProperties = function(a) {
			U(this, a);
			a = this.B[a];
			a.p || (a.p = {});
			return a.p
		};
		N.insertColumn = function(a, b, c, d) {
			a !== this.B[B] && U(this, a);
			$m(b) || (b = {
				id: d || J,
				label: c || J,
				pattern: J,
				type: b
			});
			c = b[z];
			uo(Yq, c) || e(n("Invalid type: " + c + Ve));
			if (c = b.role) d = b.p || {}, d.role = c, b.p = d;
			this.B[Kd](a, 0, b);
			for (b = 0; b < this.G[B]; b++) this.G[b].c[Kd](a, 0, {
				v: k,
				f: k
			})
		};
		N.addColumn = function(a, b, c) {
			this.insertColumn(this.B[B], a, b, c);
			return this.B[B] - 1
		};
		N.Hj = function(a, b) {
			var c = {};
			if (Vm(b) == Uk && !Zm(b)) {
				c.v = "undefined" == typeof b.v ? k : b.v;
				var d = typeof b.f;
				"undefined" == d || d == Sk ? c.f = k : d == M ? c.f = b.f : e(n(
					"Formatted value ('f'), if specified, must be a string."));
				d = typeof b.p;
				d == Uk ? c.p = b.p : d != Sk && "undefined" != d && e(n(
					"Properties ('p'), if specified, must be an Object."))
			} else c.v = P(b) ? b : k, c.f = k;
			Pq(this, a, c.v);
			return c
		};
		N.insertRows = function(a, b) {
			a !== this.G[B] && Oq(this, a);
			var c;
			if (Q(b)) c = b;
			else if (typeof b == K) {
				(b != q[kb](b) || 0 > b) && e(n("Invalid value for numOrArray: " + b +
					". If numOrArray is a number it should be a nonnegative integer."));
				c = [];
				for (var d = 0; d < b; d++) c[d] = k
			} else e(n("Invalid value for numOrArray. Should be a number or an array of arrays of cells."));
			for (var d = [], f = 0; f < c[B]; f++) {
				var h = c[f],
					j = [];
				if (h === k)
					for (h = 0; h < this.B[B]; h++) j[s]({
						v: k,
						f: k
					});
				else if (Q(h)) {
					h[B] != this.B[B] && e(n("Row given with size different than " +
						this.B[B] + " (the number of columns in the table)."));
					for (var o = 0; o < h[B]; o++) j[s](this.Hj(o, h[o]))
				} else e(n("Every row given must be either null or an array."));
				h = {};
				h.c = j;
				d[s](h)
			}
			kn(mo, this.G, a, 0)[Ad](k, d);
			return a + d[B] - 1
		};
		N.addRows = function(a) {
			if (typeof a == K || Q(a)) return this.insertRows(this.G[B], a);
			e(n("Argument given to addRows must be either a number or an array"))
		};
		N.addRow = function(a) {
			if (Q(a)) return this[pc]([a]);
			P(a) && e(n("If argument is given to addRow, it must be an array, or null"));
			return this[pc](1)
		};
		N.getColumnRange = function(a) {
			return Rq(this, a)
		};
		N.getSortedRows = function(a) {
			return Sq(this, a)
		};
		N.sort = function(a) {
			var a = Nq(this, a),
				b = this;
			qo(this.G, function(c, d) {
				for (var f = 0; f < a[B]; f++) {
					var h = a[f],
						j = h.column,
						o = c.c[j],
						r = d.c[j],
						o = o ? o.v : k,
						r = r ? r.v : k,
						j = Qq(b[Ub](j), o, r);
					if (0 != j) return j * (h.desc ? -1 : 1)
				}
				return 0
			})
		};
		N.toJSON = function() {
			return un({
				cols: this.B,
				rows: this.G,
				p: this.$a
			})
		};
		N.getDistinctValues = function(a) {
			return Tq(this, a)
		};
		N.getFilteredRows = function(a) {
			return Vq(this, a)
		};
		N.removeRows = function(a, b) {
			0 >= b || (Oq(this, a), a + b > this.G[B] && (b = this.G[B] - a), this.G[Kd](a, b))
		};
		N.removeRow = function(a) {
			this.removeRows(a, 1)
		};
		N.removeColumns = function(a, b) {
			if (!(0 >= b)) {
				U(this, a);
				a + b > this.B[B] && (b = this.B[B] - a);
				this.B[Kd](a, b);
				for (var c = 0; c < this.G[B]; c++) this.G[c].c[Kd](a, b)
			}
		};
		N.removeColumn = function(a) {
			this.removeColumns(a, 1)
		};

		function Zq(a) {
			var b = a.version || hf;
			this.rj = uo($q, b) ? b : hf;
			this.ef = a.status;
			this.pb = [];
			this.qb = [];
			this.qb = a.warnings || [];
			this.pb = a[Gd] || [];
			ar(this.qb);
			ar(this.pb);
			if (this.ef != Ci) this.Mg = a.sig, this.h = new V(a.table, this.rj)
		}

		function ar(a) {
			for (var b = 0; b < a[B]; b++) {
				var c = a[b].detailed_message;
				c && (a[b].detailed_message = !c ? J : c[Gb](br) && !c[Gb](cr) ? c : c[u](/&/g, ge)[u](/</g,
					ie)[u](/>/g, he)[u](/\"/g, je))
			}
		}
		var br =
			/^[^<]*(<a(( )+target=('_blank')?("_blank")?)?( )+(href=('[^']*')?("[^"]*")?)>[^<]*<\/a>[^<]*)*$/,
			cr = /javascript((s)?( )?)*:/,
			$q = {
				Bl: gf,
				Cl: hf
			};
		N = Zq[D];
		N.Mg = k;
		N.h = k;
		N.isError = function() {
			return this.ef == Ci
		};
		N.hasWarning = function() {
			return this.ef == Fm
		};
		N.containsReason = function(a) {
			for (var b = 0; b < this.pb[B]; b++)
				if (this.pb[b].reason == a) return i;
			for (b = 0; b < this.qb[B]; b++)
				if (this.qb[b].reason == a) return i;
			return l
		};
		N.getDataSignature = function() {
			return this.Mg
		};
		N.getDataTable = function() {
			return this.h
		};
		N.Ff = function(a) {
			return this[Nb]() && this.pb && this.pb[0] && this.pb[0][a] ? this.pb[0][a] : this
			.hasWarning() && this.qb && this.qb[0] && this.qb[0][a] ? this.qb[0][a] : k
		};
		N.getReasons = function() {
			var a = this.Ff(ul);
			return P(a) && a != J ? [a] : []
		};
		N.getMessage = function() {
			return this.Ff(Ck) || J
		};
		N.getDetailedMessage = function() {
			return this.Ff(li) || J
		};

		function dr(a, b) {
			var c = b || {};
			this.qf = c.sendMethod || vh;
			uo(er, this.qf) || e(n("Send method not supported: " + this.qf));
			this.Og = c.makeRequestParams_ || {};
			$n(a) && (a = this.kk(a));
			var d = a,
				c = $n(d),
				d = Pn(Qn(5, d)),
				d = Un[cb](d);
			this.Lj = c && d;
			this.Kj = a;
			this.Gg = fr++;
			gr[s](this)
		}
		var er = {
				Dl: Jm,
				El: Km,
				yl: "scriptInjection",
				wl: wk,
				ql: vh
			},
			hr = new Np({
				"X-DataSource-Auth": "a"
			}),
			fr = 0,
			ir = {};
		dr[D].rh = 30;
		var gr = [],
			jr = O.gadgets;

		function kr() {
			for (var a = 0; a < gr[B]; a++) {
				var b = gr[a];
				b.tf && b.Jd()
			}
		}
		N = dr[D];
		N.kk = function(a) {
			var b = new Cq(a);
			433 == b.Qa && b.yc(k);
			var c = b.ja,
				c = c[u](/\/ccc$/, df);
			/\/pub$/ [cb](c) && (c = c[u](/\/pub$/, df), b.nd(ol, lf));
			b.xc(c);
			var c = Pn(Qn(3, a)),
				a = (ca(Qn(4, a)) || k) != k,
				d = Yn[cb](c),
				c = Zn[cb](c) && !d && a;
			b.zc(c ? Uj : Zj);
			return b[yc]()
		};

		function lr(a) {
			a[ed].Lg() ? (a = Cn(a[ed].Dk()), a[Gb](/^({.*})$/) ? (a = yn(a), mr(a)) : mn(zn(a))) : e(n(
				"google.visualization.Query: " + a[ed].Ck()))
		}

		function mr(a) {
			var b = a.reqId,
				c = ir[b];
			c ? (ir[b] = k, c.Od(a)) : e(n("Missing query for request id: " + b))
		}
		N.vf = k;
		N.Md = k;
		N.Vd = k;
		N.Ra = k;
		N.kf = k;
		N.rc = k;
		N.tf = i;
		N.Gb = 0;
		N.$e = k;
		N.Da = l;
		N.setRefreshInterval = function(a) {
			(typeof a != K || 0 > a) && e(n("Refresh interval must be a non-negative number"));
			this.Gb = a;
			this.sh()
		};
		N.sf = function() {
			if (this.Vd) ba[fb](this.Vd), this.Vd = k
		};
		N.sk = function() {
			this.Lh(jm, Ig)
		};
		N.Lh = function(a, b, c) {
			this.Od({
				version: hf,
				status: Ci,
				errors: [{
					reason: a,
					message: b,
					detailed_message: c
				}]
			})
		};
		N.Nj = function(a) {
			var b = {};
			this.Ra && (b.tq = J + this.Ra);
			var c = xl + this.Gg,
				d = this.$e;
			d && (c += wf + d);
			this.kf && (c += xf + this.kf);
			b.tqx = c;
			if (this.rc) {
				var c = [],
					f;
				for (f in this.rc) c[s](f + uf + this.rc[f]);
				b.tqh = c[Ld](vf)
			}
			f = a;
			a = f[v](ae); - 1 != a && (f = f[xd](0, a));
			c = f[v](Ef);
			d = a = J;
			d = []; - 1 == c ? a = f : (a = f[xd](0, c), d = f[xd](c + 1), d = d[Pc](fe));
			f = [];
			for (c = 0; c < d[B]; c++) {
				var h = {};
				h.name = d[c][Pc](Cf)[0];
				h.pf = d[c];
				f[s](h)
			}
			for (var j in b) {
				d = b[j];
				h = l;
				for (c = 0; c < f[B]; c++)
					if (f[c][nc] == j) {
						f[c].pf = j + Cf + aa(d);
						h = i;
						break
					} if (!h) c = {}, c.name = j, c.pf =
					j + Cf + aa(d), f[s](c)
			}
			b = a;
			if (0 < f[B]) {
				b += Ef;
				j = [];
				for (c = 0; c < f[B]; c++) j[s](f[c].pf);
				b += j[Ld](fe)
			}
			a = b;
			this.Gb && (b = new Cq(a), Mo && b.Jj(), a = b[yc]());
			return a
		};
		N.Jd = function() {
			var a = this.Nj(this.Kj);
			ir[J + this.Gg] = this;
			var b = this.qf,
				c = cg;
			b == Km && (b = Jm, c = Fg);
			if (b == vh)
				if (/[?&]alt=gviz(&[^&]*)*$/ [cb](a)) b = wk;
				else {
					var b = a.search(Rn),
						d;
					b: {
						for (d = 0; 0 <= (d = a[v](pm, d)) && d < b;) {
							var f = a[rd](d - 1);
							if (38 == f || 63 == f)
								if (f = a[rd](d + 4), !f || 61 == f || 38 == f || 35 == f) break b;
							d += 5
						}
						d = -1
					}
					if (0 > d) b = k;
					else {
						f = a[v](fe, d);
						if (0 > f || f > b) f = b;
						d += 5;
						b = ka(a[vc](d, f - d)[u](/\+/g, Sd))
					}
					b = b || vh;
					uo(er, b) || (b = vh)
				} if (b == wk) Sm(Oi) ? this.Qj(a, this.Og) : e(n(
			"gadgets.io.makeRequest is not defined."));
			else {
				if (!(d = b ==
						Jm)) {
					if (b = b == vh) d = (new Cq(O[Uc][wd])).Pj(new Cq(a))[yc](), b = O[Uc][wd][Gb](On), d =
						d[Gb](On), b = b[3] == d[3] && b[1] == d[1] && b[4] == d[4];
					d = b
				}
				d ? (b = g, d = a, c == Fg && (a = a[Pc](Ef), 1 <= a[B] && (d = a[0]), 2 <= a[B] && (b = a[
					1])), yq[Jb](d, lr, c, b, hr)) : (c = ja[rc](Bh)[0], b = Xm(this.$e), this.Lj && b ?
					(b = ja[Pb](dk), this.Oj(b, a), c[Ya](b)) : this.uf(a))
			}
		};
		N.Oj = function(a, b) {
			var c = this;
			a.onerror = function() {
				c.uf(b)
			};
			a.onload = function() {
				c.uf(b)
			};
			Va(a[F], Qk);
			a.src = b + ke + (new Date).getTime()
		};
		N.Qj = function(a, b) {
			if (b[jr.io[nb].CONTENT_TYPE] == k) b[jr.io[nb].CONTENT_TYPE] = jr.io.ContentType.TEXT;
			if (b[jr.io[nb].AUTHORIZATION] == k) b[jr.io[nb].AUTHORIZATION] = jr.io.AuthorizationType
			.SIGNED;
			b.OAUTH_ENABLE_PRIVATE_NETWORK == k && (b.OAUTH_ENABLE_PRIVATE_NETWORK = i);
			b.OAUTH_ADD_EMAIL == k && (b.OAUTH_ADD_EMAIL = i);
			jr.io.makeRequest(a, jn(this.Ik, this), b);
			this.zh()
		};
		N.Ik = function(a) {
			if (a != k && a.data) mn(zn(a.data));
			else {
				var b = J;
				a && a[Gd] && (b = a[Gd][Ld](Sd));
				this.Lh(xk, Pi, b)
			}
		};
		N.uf = function(a) {
			this.zh();
			on(a);
			this.sh()
		};
		N.zh = function() {
			var a = this;
			this.sf();
			this.Vd = ba[Lc](function() {
				a.sk()
			}, 1E3 * this.rh)
		};
		N.$g = function() {
			if (this.Md) ba[fb](this.Md), this.Md = k
		};
		N.sh = function() {
			this.$g();
			if (0 != this.Gb && this.tf && this.Da) {
				var a = this;
				this.Md = ba[Lc](function() {
					a.Jd()
				}, 1E3 * this.Gb)
			}
		};
		N.send = function(a) {
			this.Da = i;
			this.vf = a;
			this.Jd()
		};
		N.makeRequest = function(a, b) {
			this.Da = i;
			this.vf = a;
			this.jl = wk;
			this.Og = b || {};
			this.Jd()
		};
		N.abort = function() {
			this.Da = l;
			this.sf();
			this.$g()
		};
		N.Od = function(a) {
			this.sf();
			a = new Zq(a);
			if (!a.containsReason(Rk)) {
				this.$e = a[Nb]() ? k : a.getDataSignature();
				var b = this.vf;
				b[G](b, a)
			}
		};
		N.setTimeout = function(a) {
			(typeof a != K || la(a) || 0 >= a) && e(n("Timeout must be a positive number"));
			this.rh = a
		};
		N.setRefreshable = function(a) {
			typeof a != Ch && e(n("Refreshable must be a boolean"));
			return this.tf = a
		};
		N.setQuery = function(a) {
			typeof a != M && e(n("queryString must be a string"));
			this.Ra = a
		};
		N.el = function(a) {
			this.kf = a;
			a != k && this.Ch(tm, a)
		};
		N.Ch = function(a, b) {
			a = a[u](/\\/g, ch);
			b = b[u](/\\/g, ch);
			a = a[u](/:/g, dh);
			b = b[u](/:/g, dh);
			a = a[u](/;/g, eh);
			b = b[u](/;/g, eh);
			if (!this.rc) this.rc = {};
			this.rc[a] = b
		};

		function nr() {
			var a;
			or || (or = i, O.IDIModule && O.IDIModule.registerListener(kr, {
				pollingInterval: 100
			}), O.gadgets && (pr(We), this.yh()));
			a = ja;
			a = a.querySelectorAll && a.querySelector && (!Mo || pp(ja) || $o(qf)) ? a.querySelectorAll(Kf) : a[
				rc](Kf);
			this.Kk = pn(a[0])
		}
		var or = l;
		nr[D].Fh = 200;

		function qr() {
			return !!O.gadgets && !!O.gadgets.rpc
		}
		nr[D].yh = function() {
			if (qr()) {
				var a = O.gadgets;
				bn(a.rpc.register) && a.rpc.register(vl, kr)
			} else 0 < this.Fh && (this.Fh--, ba[Lc](jn(this.yh, this), 100))
		};
		nr[D].createQueryFromPrefs = function(a) {
			var b = a.getString(jh),
				c = b[Od]();
			if (0 == c[v](Vj) || 0 == c[v]($j)) b = ka(b);
			b = new dr(b);
			a = a.getInt(ih);
			b[fc](a);
			return b
		};
		nr[D].validateResponse = function(a) {
			return this.Kk(a)
		};

		function pr(a) {
			if (qr()) {
				var b = O.gadgets;
				try {
					b.rpc.getRelayUrl(a) || b.rpc.setRelayUrl(a, Xj)
				} catch (c) {
					bn(b.rpc.setRelayUrl) && b.rpc.setRelayUrl(a, Xj)
				}
			}
		}
		O.gadgets && !qr() && on("http://www.gmodules.com/gadgets/rpc/rpc.v.js");
		pr(We);

		function rr(a) {
			var b = a.__eventTarget;
			if (!P(b)) b = new sq, a.__eventTarget = b;
			return a = b
		}

		function sr(a) {
			return function(b) {
				a(b.al)
			}
		}

		function tr(a) {
			this.Zk = a
		}
		tr[D].getKey = function() {
			return this.Zk
		};

		function ur(a, b) {
			Yp[G](this, a);
			this.al = b
		}
		S(ur, Yp);

		function vr(a, b, c, d) {
			this.Ra = a;
			this.Cg = b;
			this.jb = c || {};
			this.ec = d;
			this.Jc = k;
			if (d) this.Jc = this.rf = pn(d);
			(!b || !(wi in b) || typeof b[kd] != Mi) && e(n("Visualization must have a draw method."))
		}
		N = vr[D];
		N.rf = k;
		N.hh = k;
		N.ih = k;
		N.h = k;
		N.setOptions = function(a) {
			this.jb = a || {}
		};
		N.draw = function() {
			this.h && this.Cg[kd](this.h, this.jb)
		};
		N.dl = function(a) {
			var b = this.ec;
			this.Jc = a ? a : b ? this.Jc = this.rf : k
		};
		N.sendAndDraw = function() {
			this.Jc || e(n(
				"If no container was supplied, a custom error handler must be supplied instead."));
			var a = this;
			this.Ra[Jb](function(b) {
				var c = a.hh;
				c && c(b);
				a.Od(b);
				(c = a.ih) && c(b)
			})
		};
		N.Od = function(a) {
			var b = this.Jc;
			if (b(a)) this.h = a[tb](), this.Cg[kd](this.h, this.jb)
		};
		N.setCustomResponseHandler = function(a) {
			a == k ? this.pl = k : (typeof a != Mi && e(n("Custom response handler must be a function.")),
				this.hh = a)
		};
		N.setCustomPostResponseHandler = function(a) {
			if (a != k) typeof a != Mi && e(n("Custom post response handler must be a function.")), this
				.ih = a
		};
		N.abort = function() {
			this.Ra[Kc]()
		};

		function W(a) {
			this.h = a;
			for (var b = [], a = a[rb](), c = 0; c < a; c++) b[s](c);
			this.s = b;
			this.Xa = i;
			this.Wa = k;
			this.Le = [];
			this.Ke = i
		}
		N = W[D];
		N.mj = function() {
			for (var a = 0; a < this.s[B]; a++) $m(this.s[a]) && (this.Le[a] = []);
			this.Ke = l
		};
		N.Ic = function() {
			this.Ke = i
		};
		N.Xj = function() {
			for (var a = [], b = this.h[Dc](), c = 0; c < b; c++) a[s](c);
			this.Wa = a;
			this.Ic()
		};
		N.setColumns = function(a) {
			for (var b = this.h, c = to(wr), d = 0; d < a[B]; d++) {
				var f = a[d];
				if (an(f)) U(b, f);
				else if ($m(f)) {
					var h = f.sourceColumn,
						f = f.calc;
					R(f) && ((!c || c && !ho(c, f)) && e(n('Unknown function "' + f + Xd)), P(h) && U(b, h))
				} else e(n("Invalid column input, expected either a number or an object."))
			}
			this.s = fn(a);
			a = this.h;
			b = this.s;
			for (c = 0; c < b[B]; c++)
				if (d = b[c], $m(d)) {
					if (h = d.role) f = d.properties || {}, f.role = h, d.properties = f;
					h = d.sourceColumn;
					if (an(h)) U(a, h), d.calc = d.calc || ak, Ca(d, d[z] || a[Ub](h))
				} this.Ic()
		};
		N.dh = function(a, b) {
			if (Q(a)) {
				Wm(b) && e(n("If the first parameter is an array, no second parameter is expected"));
				for (var c = 0; c < a[B]; c++) Oq(this.h, a[c]);
				return ko(a)
			}
			if (Vm(a) == K) {
				!Vm(b) == K && e(n(
					"If first parameter is a number, second parameter must be specified and be a number."
					));
				a > b && e(n(
					"The first parameter (min) must be smaller than or equal to the second parameter (max)."
					));
				Oq(this.h, a);
				Oq(this.h, b);
				for (var d = [], c = a; c <= b; c++) d[s](c);
				return d
			}
			e(n("First parameter must be a number or an array."))
		};
		N.setRows = function(a, b) {
			this.Wa = this.dh(a, b);
			this.Xa = l;
			this.Ic()
		};
		N.getViewColumns = function() {
			return fn(this.s)
		};
		N.getViewRows = function() {
			if (this.Xa) {
				for (var a = [], b = this.h[Dc](), c = 0; c < b; c++) a[s](c);
				return a
			}
			return ko(this.Wa)
		};
		N.hideColumns = function(a) {
			this[Md](eo(this.s, function(b) {
				return !ho(a, b)
			}));
			this.Ic()
		};
		N.hideRows = function(a, b) {
			var c = this.dh(a, b);
			if (this.Xa) this.Xj(), this.Xa = l;
			this.setRows(eo(this.Wa, function(a) {
				return !ho(c, a)
			}));
			this.Ic()
		};
		N.getViewColumnIndex = function(a) {
			for (var b = 0; b < this.s[B]; b++) {
				var c = this.s[b];
				if (c == a) return b;
				if ($m(c) && c.sourceColumn == a) return b
			}
			return -1
		};
		N.getViewRowIndex = function(a) {
			return this.Xa ? 0 > a || a >= this.h[Dc]() ? -1 : a : bo(this.Wa, a)
		};
		N.getTableColumnIndex = function(a) {
			U(this, a);
			a = this.s[a];
			return an(a) ? a : $m(a) && an(a.sourceColumn) ? a.sourceColumn : -1
		};
		N.getUnderlyingTableColumnIndex = function(a) {
			a = this.getTableColumnIndex(a);
			if (-1 == a) return a;
			bn(this.h.getUnderlyingTableColumnIndex) && (a = this.h.getUnderlyingTableColumnIndex(a));
			return a
		};
		N.getTableRowIndex = function(a) {
			Oq(this, a);
			return this.Xa ? a : this.Wa[a]
		};
		N.getUnderlyingTableRowIndex = function(a) {
			a = this[Zb](a);
			bn(this.h.getUnderlyingTableRowIndex) && (a = this.h.getUnderlyingTableRowIndex(a));
			return a
		};
		N.getNumberOfRows = function() {
			return this.Xa ? this.h[Dc]() : this.Wa[B]
		};
		N.getNumberOfColumns = function() {
			return this.s[B]
		};
		N.getColumnId = function(a) {
			U(this, a);
			a = this.s[a];
			return an(a) ? this.h.getColumnId(a) : a.id || J
		};
		N.getColumnIndex = function(a) {
			for (var b = 0; b < this.s[B]; b++) {
				var c = this.s[b];
				if ($m(c) && c.id == a) return b
			}
			return this.getViewColumnIndex(this.h.getColumnIndex(a))
		};
		N.getColumnLabel = function(a) {
			U(this, a);
			a = this.s[a];
			return an(a) ? this.h[Qb](a) : a[Id] || J
		};
		N.getColumnPattern = function(a) {
			U(this, a);
			a = this.s[a];
			return an(a) ? this.h[Tc](a) : k
		};
		N.getColumnRole = function(a) {
			a = this[Qc](a, Bl);
			return a = R(a) ? a : J
		};
		N.getColumnType = function(a) {
			U(this, a);
			a = this.s[a];
			return an(a) ? this.h[Ub](a) : a[z]
		};
		Ga(N, function(a, b) {
			U(this, b);
			var c = this[Zb](a),
				d = this.s[b];
			return an(d) ? this.h[A](c, d) : this.qj(c, b)
		});
		N.qj = function(a, b) {
			this.Ke && this.mj();
			var c = this.Le[b][a];
			if (Wm(c)) return c;
			var c = this.s[b],
				d = c.calc;
			R(d) ? (d = wr[d], c = d(this.h, a, c.sourceColumn)) : c = d[G](k, this.h, a);
			return this.Le[b][a] = c
		};
		N.getFormattedValue = function(a, b) {
			U(this, b);
			var c = this.s[b];
			return $m(c) ? Wq(this[A](a, b), this[Ub](b)) : an(c) ? this.h[Fd](this[Zb](a), c) : J
		};
		N.getProperty = function(a, b, c) {
			U(this, b);
			b = this.s[b];
			return an(b) ? this.h.getProperty(this[Zb](a), b, c) : k
		};
		N.getProperties = function(a, b) {
			U(this, b);
			var c = this.s[b];
			return an(c) ? this.h[Fc](this[Zb](a), c) : {}
		};
		N.getColumnProperty = function(a, b) {
			U(this, a);
			var c = this.s[a];
			return an(c) ? this.h[Qc](c, b) : this[Ab](a)[b] || k
		};
		N.getColumnProperties = function(a) {
			U(this, a);
			a = this.s[a];
			return an(a) ? this.h[Ab](a) : a.properties || {}
		};
		N.getTableProperty = function(a) {
			return this.h.getTableProperty(a)
		};
		N.getTableProperties = function() {
			return this.h[dc]()
		};
		N.getRowProperty = function(a, b) {
			return this.h.getRowProperty(this[Zb](a), b)
		};
		N.getRowProperties = function(a) {
			Oq(this, a);
			return this.h[cc](this[Zb](a))
		};
		N.getColumnRange = function(a) {
			return Rq(this, a)
		};
		N.getDistinctValues = function(a) {
			return Tq(this, a)
		};
		N.getSortedRows = function(a) {
			return Sq(this, a)
		};
		N.getFilteredRows = function(a) {
			return Vq(this, a)
		};
		N.toDataTable = function() {
			var a = this.h;
			bn(a[Rb]) && (a = a[Rb]());
			var a = xn(a[Hc]()),
				b = this[rb](),
				c = this[Dc](),
				d, f, h, j = [],
				o = [];
			for (d = 0; d < b; d++) h = this.s[d], $m(h) ? (f = wo(h), delete f.calc, delete f
				.sourceColumn) : an(h) ? f = a.cols[h] : e(n(og)), j[s](f);
			for (f = 0; f < c; f++) {
				var r = a[zd][this.Xa ? f : this.Wa[f]],
					w = [];
				for (d = 0; d < b; d++) {
					h = this.s[d];
					var C;
					$m(h) ? C = {
						v: this[A](f, d)
					} : an(h) ? C = r.c[this.s[d]] : e(n(og));
					w[s](C)
				}
				r.c = w;
				o[s](r)
			}
			a.cols = j;
			a.rows = o;
			return a = new V(a)
		};
		N.toJSON = function() {
			for (var a = {}, b = [], c = 0; c < this.s[B]; c++) {
				var d = this.s[c];
				(!$m(d) || R(d.calc)) && b[s](d)
			}
			0 == b[B] || (a.columns = b);
			this.Xa || (a.rows = ko(this.Wa));
			return un(a)
		};
		var wr = {
			emptyString: function() {
				return J
			},
			stringify: function(a, b, c) {
				return a[Fd](b, c)
			},
			fillFromTop: function(a, b, c) {
				return Xq(a, b, c, i)
			},
			fillFromBottom: function(a, b, c) {
				return Xq(a, b, c, l)
			},
			identity: function(a, b, c) {
				return a[A](b, c)
			}
		};
		var X = {
			Ef: "google-visualization-errors"
		};
		X.yg = X.Ef + "-";
		X.vh = X.Ef + uf;
		X.Af = X.Ef + "-all-";
		X.Me = X.vh + " container is null";
		X.Mi = "background-color: #c00000; color: white; padding: 2px;";
		X.Oi =
			"background-color: #fff4c2; color: black; white-space: nowrap; padding: 2px; border: 1px solid black;";
		X.Pi = "font: normal 0.8em arial,sans-serif; margin-bottom: 5px;";
		X.Ni =
			"font-size: 1.1em; color: #0000cc; font-weight: bold; cursor: pointer; padding-left: 10px; color: black;text-align: right; vertical-align: top;";
		X.xg = 0;
		X.addError = function(a, b, c, d) {
			X.Ne(a) || e(n(X.Me + ". message: " + b));
			var c = X.Ri(b, c, d),
				f = c.errorMessage,
				b = c.detailedMessage,
				c = c.options,
				h = P(c.showInTooltip) ? !!c.showInTooltip : i,
				j = (c[z] == Fm ? Fm : Ci) == Ci ? X.Mi : X.Oi,
				j = j + (c[F] ? c[F] : J),
				o = !!c.removable,
				d = ip(),
				f = d.d(Ul, {
					style: j
				}, d[qb](f)),
				j = X.yg + X.xg++,
				r = d.d(ti, {
					id: j,
					style: X.Pi
				}, f);
			if (b) h ? f.title = b : (h = ja[Pb](Ul), qa(h, b), d[Ya](r, d.d(ti, {
				style: el
			}, h)));
			if (o) b = d.d(Ul, {
				style: X.Ni
			}, d[qb](Pm)), b.onclick = kn(X.Pe, r), d[Ya](f, b);
			X.Qi(a, r);
			c.removeDuplicates && X.Si(a, r);
			return j
		};
		X.removeAll = function(a) {
			X.Ne(a) || e(n(X.Me));
			if (a = X.zf(a, l)) Va(a[F], Qk), xp(a)
		};
		X.addErrorFromQueryResponse = function(a, b) {
			X.Ne(a) || e(n(X.Me));
			b || e(n(X.vh + " response is null"));
			if (!b[Nb]() && !b.hasWarning()) return k;
			var c = b.getReasons(),
				d = i;
			b[Nb]() && (d = !(ho(c, ym) || ho(c, hk)));
			var c = b.getMessage(),
				f = b.getDetailedMessage(),
				d = {
					showInTooltip: d
				};
			Ca(d, b[Nb]() ? Ci : Fm);
			d.removeDuplicates = i;
			return X[Gc](a, c, f, d)
		};
		X.removeError = function(a) {
			a = ja[lb](a);
			return X.Cf(a) ? (X.Pe(a), i) : l
		};
		X.getContainer = function(a) {
			a = ja[lb](a);
			return X.Cf(a) ? a[Hd][Hd] : k
		};
		X.createProtectedCallback = function(a, b) {
			return function() {
				try {
					a[Ad](k, arguments)
				} catch (c) {
					bn(b) ? b(c) : google[E][Gd][Gc](b, c[Xc])
				}
			}
		};
		X.Pe = function(a) {
			var b = a[Hd];
			zp(a);
			0 == b[hc][B] && Va(b[F], Qk)
		};
		X.Cf = function(a) {
			return up(a) && a.id && 0 == a.id[jd](X.yg, 0) && (a = a[Hd]) && a.id && 0 == a.id[jd](X.Af,
				0) && a[Hd] ? i : l
		};
		X.Ri = function(a, b, c) {
			var d = P(a) && a ? a : Ci,
				f = J,
				h = {},
				j = arguments[B];
			2 == j ? b && Vm(b) == Uk ? h = b : f = P(b) ? b : f : 3 == j && (f = P(b) ? b : f, h = c ||
			{});
			d = Cn(d);
			f = Cn(f);
			return {
				errorMessage: d,
				detailedMessage: f,
				options: h
			}
		};
		X.Ne = function(a) {
			return P(a) && up(a)
		};
		X.zf = function(a, b) {
			for (var c = a[hc], d = k, f = ip(), h = 0; h < c[B]; h++)
				if (c[h].id && 0 == c[h].id[jd](X.Af, 0)) {
					d = c[h];
					f.removeNode(d);
					break
				}! d && b && (d = X.Af + X.xg++, d = rp(ti, {
				id: d,
				style: si
			}, k));
			d && ((c = a[Vb]) ? f.se(d, c) : f[Ya](a, d));
			return d
		};
		X.Qi = function(a, b) {
			var c = X.zf(a, i);
			Va(c[F], zh);
			c[Ya](b)
		};
		X.Fk = function(a, b) {
			var c = X.zf(a, i);
			co(c && c[hc], function(a) {
				X.Cf(a) && b(a)
			})
		};
		X.Si = function(a, b) {
			var c = /id="?google-visualization-errors-[0-9]*"?/,
				d = Cp(b),
				d = d[u](c, J),
				f = [];
			X.Fk(a, function(a) {
				if (a != b) {
					var j = Cp(a),
						j = j[u](c, J);
					j == d && f[s](a)
				}
			});
			co(f, X.Pe);
			return f[B]
		};
		var xr = {
			aliceblue: "#f0f8ff",
			antiquewhite: "#faebd7",
			aqua: "#00ffff",
			aquamarine: "#7fffd4",
			azure: "#f0ffff",
			beige: "#f5f5dc",
			bisque: "#ffe4c4",
			black: "#000000",
			blanchedalmond: "#ffebcd",
			blue: "#0000ff",
			blueviolet: "#8a2be2",
			brown: "#a52a2a",
			burlywood: "#deb887",
			cadetblue: "#5f9ea0",
			chartreuse: "#7fff00",
			chocolate: "#d2691e",
			coral: "#ff7f50",
			cornflowerblue: "#6495ed",
			cornsilk: "#fff8dc",
			crimson: "#dc143c",
			cyan: "#00ffff",
			darkblue: "#00008b",
			darkcyan: "#008b8b",
			darkgoldenrod: "#b8860b",
			darkgray: "#a9a9a9",
			darkgreen: "#006400",
			darkgrey: "#a9a9a9",
			darkkhaki: "#bdb76b",
			darkmagenta: "#8b008b",
			darkolivegreen: "#556b2f",
			darkorange: "#ff8c00",
			darkorchid: "#9932cc",
			darkred: "#8b0000",
			darksalmon: "#e9967a",
			darkseagreen: "#8fbc8f",
			darkslateblue: "#483d8b",
			darkslategray: "#2f4f4f",
			darkslategrey: "#2f4f4f",
			darkturquoise: "#00ced1",
			darkviolet: "#9400d3",
			deeppink: "#ff1493",
			deepskyblue: "#00bfff",
			dimgray: "#696969",
			dimgrey: "#696969",
			dodgerblue: "#1e90ff",
			firebrick: "#b22222",
			floralwhite: "#fffaf0",
			forestgreen: "#228b22",
			fuchsia: "#ff00ff",
			gainsboro: "#dcdcdc",
			ghostwhite: "#f8f8ff",
			gold: "#ffd700",
			goldenrod: "#daa520",
			gray: "#808080",
			green: "#008000",
			greenyellow: "#adff2f",
			grey: "#808080",
			honeydew: "#f0fff0",
			hotpink: "#ff69b4",
			indianred: "#cd5c5c",
			indigo: "#4b0082",
			ivory: "#fffff0",
			khaki: "#f0e68c",
			lavender: "#e6e6fa",
			lavenderblush: "#fff0f5",
			lawngreen: "#7cfc00",
			lemonchiffon: "#fffacd",
			lightblue: "#add8e6",
			lightcoral: "#f08080",
			lightcyan: "#e0ffff",
			lightgoldenrodyellow: "#fafad2",
			lightgray: "#d3d3d3",
			lightgreen: "#90ee90",
			lightgrey: "#d3d3d3",
			lightpink: "#ffb6c1",
			lightsalmon: "#ffa07a",
			lightseagreen: "#20b2aa",
			lightskyblue: "#87cefa",
			lightslategray: "#778899",
			lightslategrey: "#778899",
			lightsteelblue: "#b0c4de",
			lightyellow: "#ffffe0",
			lime: "#00ff00",
			limegreen: "#32cd32",
			linen: "#faf0e6",
			magenta: "#ff00ff",
			maroon: "#800000",
			mediumaquamarine: "#66cdaa",
			mediumblue: "#0000cd",
			mediumorchid: "#ba55d3",
			mediumpurple: "#9370d8",
			mediumseagreen: "#3cb371",
			mediumslateblue: "#7b68ee",
			mediumspringgreen: "#00fa9a",
			mediumturquoise: "#48d1cc",
			mediumvioletred: "#c71585",
			midnightblue: "#191970",
			mintcream: "#f5fffa",
			mistyrose: "#ffe4e1",
			moccasin: "#ffe4b5",
			navajowhite: "#ffdead",
			navy: "#000080",
			oldlace: "#fdf5e6",
			olive: "#808000",
			olivedrab: "#6b8e23",
			orange: "#ffa500",
			orangered: "#ff4500",
			orchid: "#da70d6",
			palegoldenrod: "#eee8aa",
			palegreen: "#98fb98",
			paleturquoise: "#afeeee",
			palevioletred: "#d87093",
			papayawhip: "#ffefd5",
			peachpuff: "#ffdab9",
			peru: "#cd853f",
			pink: "#ffc0cb",
			plum: "#dda0dd",
			powderblue: "#b0e0e6",
			purple: "#800080",
			red: "#ff0000",
			rosybrown: "#bc8f8f",
			royalblue: "#4169e1",
			saddlebrown: "#8b4513",
			salmon: "#fa8072",
			sandybrown: "#f4a460",
			seagreen: "#2e8b57",
			seashell: "#fff5ee",
			sienna: "#a0522d",
			silver: "#c0c0c0",
			skyblue: "#87ceeb",
			slateblue: "#6a5acd",
			slategray: "#708090",
			slategrey: "#708090",
			snow: "#fffafa",
			springgreen: "#00ff7f",
			steelblue: "#4682b4",
			tan: "#d2b48c",
			teal: "#008080",
			thistle: "#d8bfd8",
			tomato: "#ff6347",
			turquoise: "#40e0d0",
			violet: "#ee82ee",
			wheat: "#f5deb3",
			white: "#ffffff",
			whitesmoke: "#f5f5f5",
			yellow: "#ffff00",
			yellowgreen: "#9acd32"
		};

		function yr(a) {
			var b = {},
				a = J + a,
				c = a[pb](0) == ae ? a : ae + a;
			if (zr[cb](c)) return a = c, zr[cb](a) || e(n("'" + a + "' is not a valid hex color")), 4 == a[B] &&
				(a = a[u](Ar, be)), b.Hf = a[Od](), Ca(b, Nj), b;
			a: {
				var d = a[Gb](Br);
				if (d) {
					var c = ca(d[1]),
						f = ca(d[2]),
						d = ca(d[3]);
					if (0 <= c && 255 >= c && 0 <= f && 255 >= f && 0 <= d && 255 >= d) {
						c = [c, f, d];
						break a
					}
				}
				c = []
			}
			if (c[B]) return f = c[0], a = c[1], c = c[2], f = ca(f), a = ca(a), c = ca(c), (la(f) || 0 > f ||
					255 < f || la(a) || 0 > a || 255 < a || la(c) || 0 > c || 255 < c) && e(n('"(' + f +
					ue + a + ue + c + '") is not a valid RGB color')), f = Cr(f[yc](16)), a = Cr(a[yc](16)),
				c = Cr(c[yc](16)), b.Hf = ae + f + a + c, Ca(b, zl), b;
			if (xr && (c = xr[a[Od]()])) return b.Hf = c, Ca(b, Mk), b;
			e(n(a + " is not a valid color string"))
		}
		var Ar = /#(.)(.)(.)/,
			zr = /^#(?:[0-9a-f]{3}){1,2}$/i,
			Br = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;

		function Cr(a) {
			return 1 == a[B] ? ff + a : a
		};

		function Dr(a) {
			return a == Qk || a == J || a == rm ? Qk : yr(a).Hf
		};

		function Er(a, b) {
			this.start = a < b ? a : b;
			this.end = a < b ? b : a
		}
		Ra(Er[D], function() {
			return new Er(this.start, this.end)
		});

		function Fr(a, b) {
			return a.start <= b && a.end >= b
		};

		function Gr(a) {
			P(a) || (a = {});
			this.Ve = Qk;
			P(a.fill) && this.dj(a.fill);
			this.Ue = 1;
			P(a.Fg) && this.ej(a.Fg);
			this.Te = Qk;
			P(a.stroke) && this.gj(a.stroke);
			this.Ye = 1;
			P(a.kj) && this.Eg(a.kj);
			this.Xe = 1;
			P(a.Hg) && this.ij(a.Hg);
			this.We = Rl;
			P(a.jj) && this.hj(a.jj);
			this.Ka = k;
			if (a.Ka) this.Ka = wo(a.Ka), this.Ka.bj = Dr(this.Ka.bj), this.Ka.cj = Dr(this.Ka.cj);
			this.Cd = k;
			a.pattern && this.fj(a.pattern)
		}
		N = Gr[D];
		Ra(N, function() {
			var a = new Gr;
			a.Ve = this.Ve;
			a.Ue = this.Ue;
			a.Te = this.Te;
			a.Ye = this.Ye;
			a.Xe = this.Xe;
			a.We = this.We;
			a.Ka = this.Ka ? wo(this.Ka) : k;
			a.Cd = this.Cd ? this.Cd[cd]() : k;
			return a
		});
		N.dj = function(a) {
			this.Ve = Dr(a)
		};
		N.ej = function(a) {
			this.Ue = q.min(q.max(a, 0), 1)
		};
		N.gj = function(a, b) {
			this.Te = Dr(a);
			P(b) && this.Eg(b)
		};
		N.Eg = function(a) {
			this.Ye = a
		};
		N.ij = function(a) {
			this.Xe = q.min(q.max(a, 0), 1)
		};
		N.hj = function(a) {
			this.We = a
		};
		N.fj = function(a) {
			this.Cd = a
		};
		new Gr({
			Fg: 0,
			fill: "white",
			Hg: 0,
			stroke: "white"
		});

		function Hr(a, b, c, d) {
			this.top = a;
			Xa(this, b);
			Ta(this, c);
			ua(this, d)
		}
		Ra(Hr[D], function() {
			return new Hr(this.top, this[Pd], this[ud], this[y])
		});
		Ua(Hr[D], function(a) {
			return !this || !a ? l : a instanceof Hr ? a[y] >= this[y] && a[Pd] <= this[Pd] && a.top >=
				this.top && a[ud] <= this[ud] : a.x >= this[y] && a.x <= this[Pd] && a.y >= this.top &&
				a.y <= this[ud]
		});

		function Ir(a, b, c, d) {
			ua(this, a);
			this.top = b;
			pa(this, c);
			Wa(this, d)
		}
		Ra(Ir[D], function() {
			return new Ir(this[y], this.top, this[t], this[I])
		});
		Ir[D].Ng = function(a) {
			var b = q.max(this[y], a[y]),
				c = q.min(this[y] + this[t], a[y] + a[t]);
			if (b <= c) {
				var d = q.max(this.top, a.top),
					a = q.min(this.top + this[I], a.top + a[I]);
				if (d <= a) return ua(this, b), this.top = d, pa(this, c - b), Wa(this, a - d), i
			}
			return l
		};
		Ua(Ir[D], function(a) {
			return a instanceof Ir ? this[y] <= a[y] && this[y] + this[t] >= a[y] + a[t] && this.top <=
				a.top && this.top + this[I] >= a.top + a[I] : a.x >= this[y] && a.x <= this[y] + this[
				t] && a.y >= this.top && a.y <= this.top + this[I]
		});

		function Jr(a, b) {
			var c = kp(a);
			return c[ic] && c[ic].getComputedStyle && (c = c[ic].getComputedStyle(a, k)) ? c[b] || c
				.getPropertyValue(b) : J
		}

		function Kr(a, b) {
			return Jr(a, b) || (a[vd] ? a[vd][b] : k) || a[F] && a[F][b]
		}

		function Lr(a) {
			return Kr(a, kl)
		}

		function Mr(a, b, c) {
			var d, f = Lo && (Fo || Qo) && $o(nf);
			b instanceof Ln ? (d = b.x, b = b.y) : (d = b, b = c);
			ua(a[F], Nr(d, f));
			a[F].top = Nr(b, f)
		}

		function Or(a) {
			var b = a[$a]();
			if (T) a = a.ownerDocument, ua(b, b[y] - (a[uc][Yb] + a[ad][Yb])), b.top -= a[uc][ac] + a[ad][ac];
			return b
		}

		function Pr(a) {
			if (T && !bp(8)) return a.offsetParent;
			for (var b = kp(a), c = Kr(a, kl), d = c == Gi || c == lh, a = a[Hd]; a && a != b; a = a[Hd])
				if (c = Kr(a, kl), d = d && c == Yl && a != b[uc] && a != b[ad], !d && (a.scrollWidth > a[Jc] ||
						a[Sb] > a[pd] || c == Gi || c == lh || c == wl)) return a;
			return k
		}

		function Qr(a) {
			for (var b = new Hr(0, ea, ea, 0), c = ip(a), d = c.o[ad], f = c.o[uc], h = c.Sj(); a = Pr(a);)
				if ((!T || 0 != a[Jc]) && (!Mo || 0 != a[pd] || a != d) && a != d && a != f && Kr(a, cl) !=
					Dm) {
					var j = Rr(a),
						o;
					o = a;
					if (Lo && !$o(nf)) {
						var r = ga(Jr(o, Ih));
						if (Sr(o)) var w = o.offsetWidth - o[Jc] - r - ga(Jr(o, Kh)),
							r = r + w;
						o = new Ln(r, ga(Jr(o, Mh)))
					} else o = new Ln(o[Yb], o[ac]);
					j.x += o.x;
					j.y += o.y;
					b.top = q.max(b.top, j.y);
					Xa(b, q.min(b[Pd], j.x + a[Jc]));
					Ta(b, q.min(b[ud], j.y + a[pd]));
					ua(b, q.max(b[y], j.x))
				} d = h[qd];
			h = h[xc];
			ua(b, q.max(b[y], d));
			b.top = q.max(b.top, h);
			c = c.Tj();
			Xa(b, q.min(b[Pd], d + c[t]));
			Ta(b, q.min(b[ud], h + c[I]));
			return 0 <= b.top && 0 <= b[y] && b[ud] > b.top && b[Pd] > b[y] ? b : k
		}

		function Rr(a) {
			var b, c = kp(a),
				d = Kr(a, kl),
				f = Lo && c[Ib] && !a[$a] && d == lh && (b = c[Ib](a)) && (0 > b[Eb] || 0 > b[Fb]),
				h = new Ln(0, 0),
				j;
			b = c ? 9 == c[ib] ? c : kp(c) : ja;
			j = T && !bp(9) && !ip(b).ff() ? b[ad] : b[uc];
			if (a == j) return h;
			if (a[$a]) b = Or(a), a = ip(c).ac(), h.x = b[y] + a.x, h.y = b.top + a.y;
			else if (c[Ib] && !f) b = c[Ib](a), a = c[Ib](j), h.x = b[Eb] - a[Eb], h.y = b[Fb] - a[Fb];
			else {
				b = a;
				do {
					h.x += b.offsetLeft;
					h.y += b[Jd];
					b != a && (h.x += b[Yb] || 0, h.y += b[ac] || 0);
					if (Mo && Lr(b) == Gi) {
						h.x += c[ad][qd];
						h.y += c[ad][xc];
						break
					}
					b = b.offsetParent
				} while (b && b != a);
				if (Ko || Mo && d ==
					lh) h.y -= c[ad][Jd];
				for (b = a;
					(b = Pr(b)) && b != c[ad] && b != j;)
					if (h.x -= b[qd], !Ko || b[Cd] != Sg) h.y -= b[xc]
			}
			return h
		}

		function Tr(a, b, c) {
			b instanceof Nn ? (c = b[I], b = b[t]) : c == g && e(n("missing height argument"));
			pa(a[F], Nr(b, i));
			Wa(a[F], Nr(c, i))
		}

		function Nr(a, b) {
			typeof a == K && (a = (b ? q.round(a) : a) + pl);
			return a
		}

		function Ur(a) {
			if (Kr(a, ri) != Qk) return Vr(a);
			var b = a[F],
				c = b.display,
				d = b.visibility,
				f = b.position;
			Ka(b, Oj);
			b.position = lh;
			Va(b, ek);
			a = Vr(a);
			Va(b, c);
			b.position = f;
			Ka(b, d);
			return a
		}

		function Vr(a) {
			var b = a.offsetWidth,
				c = a.offsetHeight,
				d = Mo && !b && !c;
			return (!Wm(b) || d) && a[$a] ? (a = Or(a), new Nn(a[Pd] - a[y], a[ud] - a.top)) : new Nn(b, c)
		}

		function Wr(a) {
			var b = Rr(a),
				a = Ur(a);
			return new Ir(b.x, b.y, a[t], a[I])
		}

		function Xr(a, b) {
			var c = a[F];
			if (Wk in c) c.opacity = b;
			else if (yg in c) c.MozOpacity = b;
			else if (Fi in c) c.filter = b === J ? J : rh + 100 * b + se
		}

		function Yr(a, b) {
			Va(a[F], b ? J : Qk)
		}

		function Sr(a) {
			return Dl == Kr(a, oi)
		}
		var Zr = Lo ? "MozUserSelect" : Mo ? "WebkitUserSelect" : k;

		function $r(a, b, c) {
			c = !c ? a[rc](te) : k;
			if (Zr) {
				if (b = b ? Qk : J, a[F][Zr] = b, c)
					for (var a = 0, d; d = c[a]; a++) d[F][Zr] = b
			} else if (T || Ko)
				if (b = b ? Vk : J, a[$b](xm, b), c)
					for (a = 0; d = c[a]; a++) d[$b](xm, b)
		}

		function as(a, b, c, d) {
			if (/^\d+px?$/ [cb](b)) return fa(b, 10);
			var f = a[F][c],
				h = a.runtimeStyle[c];
			a.runtimeStyle[c] = a[vd][c];
			a[F][c] = b;
			b = a[F][d];
			a[F][c] = f;
			a.runtimeStyle[c] = h;
			return b
		}

		function bs(a, b) {
			return as(a, a[vd] ? a[vd][b] : k, sk, jl)
		}
		var cs = {
			thin: 2,
			medium: 4,
			thick: 6
		};

		function ds(a, b) {
			if ((a[vd] ? a[vd][b + Qg] : k) == Qk) return 0;
			var c = a[vd] ? a[vd][b + Yg] : k;
			return c in cs ? cs[c] : as(a, c, sk, jl)
		};

		function es() {
			var a = Sm(Hj);
			P(a) || (a = Wj);
			var b = Sm(Jj);
			P(b) || (b = mf);
			return a + cf + b
		}

		function fs(a) {
			var b = Sm(a);
			bn(b) || (b = Sm(Ij + a), bn(b) || (b = k));
			return b
		};

		function gs() {}
		N = gs[D];
		N.$ = function(a) {
			(!$m(a) || !bn(a[rb]) || !bn(a[Dc])) && e(n("Invalid data table."))
		};
		N.rk = function(a) {
			this.$(a);
			a = new google[E][md](a);
			if (this.W(a)) return a;
			a = this.Ij(a);
			a = this.Ub(a);
			a = this.Zg(a);
			return this.W(a) ? a : k
		};
		N.e = function(a, b, c) {
			return a[rb]() > b && c == a[Ub](b)
		};
		N.indexOf = function(a, b) {
			for (var c = 0; c < a[rb](); c++)
				if (a[Ub](c) == b) return c;
			return -1
		};
		N.bf = function(a, b) {
			return this.e(a, b, K) ? this.Sb(a, b, function(a) {
				return 0 <= a
			}) : l
		};
		N.Sb = function(a, b, c) {
			for (var d = q.min(a[Dc](), 20), f = 0; f < d; f++) {
				var h = a[A](f, b);
				if (h != k && !c(h)) return l
			}
			return i
		};
		N.tj = function(a, b, c) {
			if (!this.e(a, b, K)) return l;
			if (!this.e(a, c, K)) return l;
			var d = jn(this.wj, this),
				f = jn(this.xj, this);
			return this.Sb(a, b, d) && this.Sb(a, c, f)
		};
		N.wj = function(a) {
			return Fr(new Er(-90, 90), a) && !(ha(a) && 0 == a % 1)
		};
		N.xj = function(a) {
			return Fr(new Er(-180, 180), a) && !(ha(a) && 0 == a % 1)
		};
		N.Ia = function(a, b) {
			var c = new google[E][md](a);
			c[Md](b);
			return c
		};
		N.ta = function(a, b) {
			for (var c = a[rb](), d = 0; d < c; d++) b(d)
		};
		N.Ed = function(a, b) {
			var c = this,
				d = 0;
			this.ta(a, function(f) {
				c.e(a, f, b) && d++
			});
			return d
		};
		N.Ub = function(a) {
			var b = this,
				c = [],
				d = this.Ed(a, M);
			this.ta(a, function(f) {
				b.e(a, f, K) ? c[s](f) : b.e(a, f, M) && 1 == d && c[s](f)
			});
			return this.Ia(a, c)
		};
		N.Zg = function(a) {
			if (1 == this.Ed(a, M)) {
				var b = this[v](a, M),
					c = [b];
				this.ta(a, function(a) {
					a != b && c[s](a)
				});
				a = this.Ia(a, c)
			}
			return a
		};
		N.Ij = function(a) {
			var b = this,
				c = [];
			this.ta(a, function(d) {
				b.e(a, d, M) ? b.Sb(a, d, function(a) {
					return /^[\s\xa0]*$/ [cb](a)
				}) || c[s](d) : c[s](d)
			});
			return this.Ia(a, c)
		};
		N.Kg = function(a) {
			for (var b = a.getDistinctValues(0), c = q.min(a[Dc](), 20), d = 0, f = 0; f < c; f++) {
				var h = a[A](f, 1);
				(!h || ho(b, h)) && d++
			}
			return 0.6 < d / c
		};

		function hs() {}
		S(hs, gs);
		hs[D].W = function(a) {
			this.$(a);
			var b = a[rb]();
			if (2 > b) return l;
			var c = a[Ub](0);
			if (c != gi && c != hi) return l;
			if (a[Ub](1) != K) return l;
			for (var c = 0, d = 1; d < b; d++) {
				var f = a[Ub](d);
				if (f == K) c = 0;
				else if (f == M) {
					if (c++, 2 < c) return l
				} else return l
			}
			return i
		};
		hs[D].Ub = function(a) {
			var b = this,
				c = [];
			this.ta(a, function(d) {
				(b.e(a, d, M) || b.e(a, d, K) || b.e(a, d, gi) || b.e(a, d, hi)) && c[s](d)
			});
			return this.Ia(a, c)
		};
		hs[D].Zg = function(a) {
			var b;
			b = 0 + this.Ed(a, gi);
			b += this.Ed(a, hi);
			if (1 == b) {
				var c = this[v](a, gi),
					c = -1 == c ? this[v](a, hi) : c,
					d = [c];
				this.ta(a, function(a) {
					a != c && d[s](a)
				});
				a = this.Ia(a, d)
			}
			return a
		};

		function is(a) {
			this.Jg = !!(a || {}).Dh
		}
		S(is, gs);
		is[D].W = function(a) {
			this.$(a);
			var b = 0,
				c = a[rb]();
			if (1 > c) return l;
			if (!this.e(a, 0, K) && (b++, this.Jg))
				for (; b < c && this.e(a, b, M);) b++;
			for (var d = k; b < c;) {
				var f = a[Ub](b);
				if (f == K) d = {};
				else if (this.Jg && f == M) {
					if (!d) return l
				} else if (f == Ch) {
					if (!d) return l;
					if (d.pj) return l;
					d.pj = b
				} else return l;
				b++
			}
			return !Xm(d)
		};

		function js(a) {
			is[G](this, a)
		}
		S(js, is);

		function ks() {}
		S(ks, gs);
		ks[D].W = function(a) {
			this.$(a);
			var b = a[rb]();
			return 3 > b || 5 < b ? l : !this.e(a, 0, M) ? l : !this.e(a, 1, K) ? l : !this.e(a, 2, K) ? l :
				3 < b && !this.e(a, 3, M) ? l : 4 < b && !this.e(a, 4, K) ? l : i
		};

		function ls() {}
		S(ls, gs);
		ls[D].W = function(a) {
			this.$(a);
			if (5 != a[rb]()) return l;
			if (!this.e(a, 0, M) || !this.e(a, 1, K) || !this.e(a, 2, K) || !this.e(a, 3, K) || !this.e(a,
					4, K)) return l;
			for (var b = q.min(a[Dc](), 20), c = 0; c < b; c++) {
				var d = a[A](c, 1),
					f = a[A](c, 2),
					h = a[A](c, 3),
					j = a[A](c, 4);
				if (d != q.min(d, f, h, j)) return l;
				if (j != q.max(d, f, h, j)) return l
			}
			return i
		};
		ls[D].Ub = function(a) {
			var b = this,
				c = [];
			this.ta(a, function(d) {
				(b.e(a, d, M) || b.e(a, d, K)) && c[s](d)
			});
			return this.Ia(a, c)
		};

		function ms() {
			is[G](this)
		}
		S(ms, is);

		function ns() {}
		S(ns, gs);
		ns[D].W = function(a) {
			this.$(a);
			return this.gk(a) || this.hk(a)
		};
		ns[D].gk = function(a) {
			var b = a[rb]();
			if (1 > b || 2 < b) return l;
			var c = i;
			2 == b && (c = c && this.e(a, 0, M));
			return c = c && this.bf(a, b - 1)
		};
		ns[D].hk = function(a) {
			var b = a[rb](),
				c = a[Dc]();
			if (0 == b || 1 != c) return l;
			for (var c = i, d = 0; d < b; d++)
				if (!this.e(a, d, K)) {
					c = l;
					break
				} return c
		};

		function os() {}
		S(os, gs);
		os[D].W = function(a) {
			var b = a[rb]();
			if (1 > b || 2 < b) return l;
			var c = this.e(a, 0, M);
			2 == b && (c = c && this.e(a, 1, K));
			return c
		};

		function ps() {}
		S(ps, gs);
		ps[D].W = function(a) {
			return this.Ok(a) || this.Nk(a)
		};
		ps[D].Ok = function(a) {
			this.$(a);
			var b = a[rb]();
			if (2 > b || 3 < b) return l;
			var c = this.e(a, 0, K),
				c = c && this.e(a, 1, K);
			3 == b && (c = c && this.e(a, 2, M));
			return c && this.tj(a, 0, 1)
		};
		ps[D].Nk = function(a) {
			this.$(a);
			var b = a[rb]();
			return 1 > b || 2 < b ? l : !this.e(a, 0, M) ? l : 2 == b && !this.e(a, 1, M) ? l : i
		};

		function qs() {}
		S(qs, gs);
		qs[D].W = function(a) {
			this.$(a);
			var b = a[rb]();
			if (3 > b) return l;
			if (a[Ub](0) != M) return l;
			var c = a[Ub](1);
			if (c != K && c != gi && c != M) return l;
			if (c == M && !this.ak(a, 1) && !this.$j(a, 1)) return l;
			if (c == K && !this.Sb(a, 1, function(a) {
					return ha(a) && 0 == a % 1
				})) return l;
			for (c = 2; c < b; c++) {
				var d = a[Ub](c);
				if (d != K && d != M) return l
			}
			return i
		};
		qs[D].ak = function(a, b) {
			return this.Sb(a, b, function(a) {
				return 7 != a[B] ? l : la(a[xd](0, 3)) ? l : a[pb](4) != Xg ? l : la(a[xd](6, 7)) ?
					l : i
			})
		};
		qs[D].$j = function(a, b) {
			return this.Sb(a, b, function(a) {
				return 6 != a[B] ? l : la(a[xd](0, 3)) ? l : a[pb](4) != Hg ? l : la(a[pb](5)) ? l :
					i
			})
		};

		function rs() {}
		S(rs, gs);
		rs[D].W = function(a) {
			this.$(a);
			var b = a[rb]();
			if (2 > b || 3 < b) return l;
			var c = this.e(a, 0, M) && this.e(a, 1, M);
			3 == b && (c = c && this.e(a, 2, M));
			return c && this.Kg(a)
		};
		rs[D].Ub = function(a) {
			var b = this,
				c = [];
			this.ta(a, function(d) {
				b.e(a, d, M) && c[s](d)
			});
			return this.Ia(a, c)
		};

		function ss() {}
		S(ss, gs);
		ss[D].W = function(a) {
			this.$(a);
			var b = a[rb]();
			if (1 > b || 2 < b) return l;
			var c = this.e(a, b - 1, K);
			return c = c && this.bf(a, b - 1)
		};

		function ts() {}
		S(ts, gs);
		ts[D].W = function(a) {
			this.$(a);
			var b = a[rb]();
			if (0 == b) return l;
			for (var c = this.e(a, 0, M) ? 1 : 0, d = b > c; c < b; c++)
				if (!this.e(a, c, K)) {
					d = l;
					break
				} return d
		};

		function us() {}
		S(us, gs);
		us[D].W = function(a) {
			this.$(a);
			var b = a[rb]();
			if (2 > b) return l;
			if (this.e(a, 0, Ch) || this.e(a, 0, M)) return l;
			for (var c = 1, d = 0, f = 0; c < b;) {
				var h = a[Ub](c);
				if (h == K) d++, f = 0;
				else if (h == Ch) {
					f++;
					if (0 == d) return l;
					if (1 < f) return l
				} else return l;
				c++
			}
			return 0 < d
		};
		us[D].Ub = function(a) {
			var b = this,
				c = [];
			this.ta(a, function(d) {
				!b.e(a, d, M) && !b.e(a, d, Ch) && c[s](d)
			});
			return this.Ia(a, c)
		};

		function vs() {}
		S(vs, gs);
		vs[D].W = function(a) {
			this.$(a);
			for (var b = i, c = a[rb](), d = 0; d < c; d++)
				if (!this.e(a, d, K)) {
					b = l;
					break
				} return b
		};
		vs[D].Ub = function(a) {
			var b = this,
				c = [];
			this.ta(a, function(d) {
				b.e(a, d, K) && c[s](d)
			});
			return this.Ia(a, c)
		};

		function ws() {}
		S(ws, gs);
		ws[D].W = function() {
			return i
		};

		function xs() {}
		S(xs, gs);
		xs[D].W = function(a) {
			this.$(a);
			var b = a[rb]();
			if (2 > b || 4 < b) return l;
			var c = this.e(a, 0, M) && this.e(a, 1, M);
			2 < b && (c = c && this.bf(a, 2)) && 3 < b && (c = c && this.e(a, 3, K));
			return c && this.Kg(a)
		};
		xs[D].Ub = function(a) {
			var b = this,
				c = [];
			this.ta(a, function(d) {
				(b.e(a, d, M) || b.e(a, d, K)) && c[s](d)
			});
			return this.Ia(a, c)
		};
		var ys = {
			AnnotatedTimeLine: {
				format: new hs,
				J: 3
			},
			AreaChart: {
				format: new js({
					Dh: i
				}),
				J: 2
			},
			BarChart: {
				format: new is,
				J: 2
			},
			BubbleChart: {
				format: new ks,
				J: 2
			},
			CandlestickChart: {
				format: new ls,
				J: 2
			},
			ColumnChart: {
				format: new is,
				J: 2
			},
			ComboChart: {
				format: new ms,
				J: 2
			},
			Gauge: {
				format: new ns,
				J: 1
			},
			GeoChart: {
				format: new os,
				J: 3
			},
			LineChart: {
				format: new is({
					Dh: i
				}),
				J: 2
			},
			ImageRadarChart: {
				format: new ts,
				J: 1
			},
			ImageSparkLine: {
				format: new vs,
				J: 1
			},
			Map: {
				format: new ps,
				J: 2
			},
			MotionChart: {
				format: new qs,
				J: 3
			},
			OrgChart: {
				format: new rs,
				J: 2
			},
			PieChart: {
				format: new ss,
				J: 2
			},
			ScatterChart: {
				format: new us,
				J: 2
			},
			SteppedAreaChart: {
				format: new js,
				J: 2
			},
			Table: {
				format: new ws,
				J: 0
			},
			TreeMap: {
				format: new xs,
				J: 2
			},
			WordTree: {
				format: new os,
				J: 2
			}
		};

		function zs(a) {
			An(a) || (a = a[u](/\d/g, ff), a = a[u](/#{10,}/, oa(11)[Ld](ae)));
			return a
		}

		function As(a) {
			if (1 != a.Nd()) return k;
			a = a.Ja()[0];
			return zs(a)
		};

		function Bs(a, b) {
			var c = b || {};
			R(c) && (c = xn(c));
			this.Ee = c.containerId || k;
			this.pd = a;
			this.fa = c[a + Vg] || k;
			this.og = c[a + Bg] || k;
			Qa(this, k);
			this.He = c.dataSourceUrl || k;
			this.h = k;
			this[hd](c.dataTable);
			this.jb = c.options || {};
			this.Sa = c.state || {};
			var d = c.packages;
			this.pg = Wm(d) ? d : k;
			this.Ra = c.query || k;
			this.Gb = c.refreshInterval || k;
			this.Ob = c.view || k
		}
		var Cs = {
			AnnotatedTimeLine: "annotatedtimeline",
			AreaChart: di,
			BarChart: di,
			BubbleChart: di,
			CandlestickChart: di,
			ColumnChart: di,
			ComboChart: di,
			Gauge: "gauge",
			GeoChart: "geochart",
			GeoMap: "geomap",
			ImageAreaChart: "imageareachart",
			ImageBarChart: "imagebarchart",
			ImageCandlestickChart: "imagechart",
			ImageChart: "imagechart",
			ImageLineChart: "imagelinechart",
			ImagePieChart: "imagepiechart",
			ImageSparkLine: "imagesparkline",
			IntensityMap: "intensitymap",
			LineChart: di,
			Map: "map",
			MotionChart: "motionchart",
			OrgChart: "orgchart",
			PieChart: di,
			RangeSelector: di,
			ScatterChart: di,
			SparklineChart: di,
			SteppedAreaChart: di,
			Table: "table",
			Timeline: "timeline",
			TreeMap: "treemap",
			StringFilter: ci,
			NumberRangeFilter: ci,
			CategoryFilter: ci,
			ChartRangeFilter: ci,
			Dashboard: ci
		};
		N = Bs[D];
		N.fh = k;
		N.ec = k;
		Ra(N, function() {
			return new this[Rc](this[Hc]())
		});
		N.draw = function(a) {
			a = lp(a || J);
			up(a) ? a != this.ec && this.hf() : (a = lp(this[td]()), up(a) || e(n(
				"The container is null or not defined.")));
			this.ec = a;
			try {
				if (P(this.fa) || e(n("The " + this.pd + " type is not defined.")), fs(this.fa)) this.ah(a);
				else {
					var b = jn(this.ah, this, a),
						b = google[E][Gd].createProtectedCallback(b, jn(this.jf, this, a));
					this.Mj(b)
				}
			} catch (c) {
				this.jf(a, c)
			}
		};
		N.toJSON = function() {
			return this.Eh(this[tb]())
		};
		N.Eh = function(a) {
			var b = this[sd](),
				c = g;
			Xm(a) || (c = bn(a[Rb]) ? xn(a[Rb]()[Hc]()) : xn(a[Hc]()));
			a = {
				containerId: this[td]() || g,
				dataSourceUrl: this[dd]() || g,
				dataTable: c,
				options: this[mb]() || g,
				state: this[od]() || g,
				packages: Xm(b) ? g : b,
				refreshInterval: this[nd]() || g,
				query: this[yd]() || g,
				view: this[Cc]() || g
			};
			a[this.pd + Vg] = this.fa || g;
			a[this.pd + Bg] = this[Kb]() || g;
			this.mh(a);
			return un(a)
		};
		N.Yj = function() {
			this.mk();
			this.lk();
			var a = this.fa,
				b = this[tb](),
				c = this[mb](),
				d = c.vAxes || [{}, {}],
				f = c.hAxis || {},
				h = d[0] || {},
				j = d[1] || {},
				o = c.vAxis || {};
			if (!f[Hb] && !h[Hb] && !j[Hb] && !o[Hb])
				if (a == Of) {
					if (!(3 > b[rb]())) {
						a = b[Tc](1);
						if (!An(a)) d = c.hAxis || {}, xa(d, zs(a)), c.hAxis = d;
						b = b[Tc](2);
						if (!An(b)) a = c.vAxes || {}, d = a[0] || {}, xa(d, zs(b)), a[0] = d, c.vAxes = a
					}
				} else {
					for (var o = [new Pp, new Pp], r = b && b[rb]() || 0, w = 0; w < r; w++)
						if (b[Ub](w) == K) {
							var C = b[Tc](w);
							if (!An(C)) {
								var L;
								L = w;
								0 == L ? L = k : (L--, L = ((c.series || {})[L] || {}).targetAxisIndex ||
									0);
								Xm(L) || o[L].add(C)
							}
						} o[0] = As(o[0]);
					o[1] = As(o[1]);
					a == Nf ? xa(f, o[0]) : (xa(h, o[0]), xa(j, o[1]), 0 < r && b[Ub](0) != M && (C = b[Tc](
						0), C = zs(C), An(C) || xa(f, C)));
					d[0] = h;
					d[1] = j;
					c.vAxes = d;
					c.hAxis = f
				}
		};
		N.mh = function() {};
		N.getDataSourceUrl = function() {
			return this.He
		};
		N.getDataTable = function() {
			return this.h
		};
		N.Kh = function() {
			return this.fa
		};
		N.getName = function() {
			return this.og
		};
		N.Gf = function() {
			return this[E]
		};
		N.getContainerId = function() {
			return this.Ee
		};
		N.getQuery = function() {
			return this.Ra
		};
		N.getRefreshInterval = function() {
			return this.Gb
		};
		N.getOption = function(a, b) {
			return Ds(this.jb, a, b)
		};

		function Ds(a, b, c) {
			a = -1 == b[v](Ve) ? a[b] : Sm(b, a);
			c = Wm(c) ? c : k;
			return a = P(a) ? a : c
		}
		N.getOptions = function() {
			return this.jb
		};
		N.getState = function() {
			return this.Sa
		};
		N.setDataSourceUrl = function(a) {
			if (a != this.He) this.nl = k;
			this.He = a
		};
		N.setDataTable = function(a) {
			this.h = a == k ? k : bn(a[dc]) ? a : Q(a) ? google[E].arrayToDataTable(a) : new google[E]
				.DataTable(a)
		};
		N.yf = function(a) {
			this.fa = a
		};
		N.Jf = function(a) {
			this.og = a
		};
		N.setContainerId = function(a) {
			if (this.Ee != a) this.Ee = a, this.hf()
		};
		N.setQuery = function(a) {
			this.Ra = a
		};
		N.setRefreshInterval = function(a) {
			this.Gb = a
		};
		N.setOption = function(a, b) {
			Es(this.jb, a, b)
		};

		function Es(a, b, c) {
			if (c == k) Xm(Ds(a, b)) || (c = b[Pc](Ve), 1 < c[B] && (b = c.pop(), a = Ds(a, c[Ld](Ve))),
				delete a[b]);
			else {
				b = b[Pc](Ve);
				a = a || O;
				!(b[0] in a) && a[Nd] && a[Nd](Am + b[0]);
				for (var d; b[B] && (d = b.shift());) !b[B] && Wm(c) ? a[d] = c : a = a[d] ? a[d] : a[d] = {}
			}
		}
		N.setOptions = function(a) {
			this.jb = a || {}
		};
		La(N, function(a) {
			this.Sa = a || {}
		});
		N.setPackages = function(a) {
			this.pg = a
		};
		N.setView = function(a) {
			this.Ob = a
		};
		N.hl = function(a) {
			Qa(this, a)
		};
		N.getSnapshot = function() {
			return new this[Rc](this.Eh(this.fh || this[tb]()))
		};
		N.getView = function() {
			return this.Ob
		};
		N.getPackages = function() {
			return this.pg
		};
		N.jf = function(a, b) {
			var c = b && b[Xc] || Ci,
				d = google[E][Gd][Gc](a, c);
			google[E][jb].trigger(this, Ci, {
				id: d,
				message: c
			})
		};
		N.Ek = function(a, b) {
			var c = b.getMessage(),
				d = b.getDetailedMessage(),
				f = google[E][Gd].addErrorFromQueryResponse(a, b);
			google[E][jb].trigger(this, Ci, {
				id: f,
				message: c,
				detailedMessage: d
			})
		};
		N.Sk = function() {
			var a = this[sd]();
			if (!P(a)) {
				var b = this.fa,
					b = b[u](Ij, J),
					a = Cs[b];
				P(a) || e(n("Invalid visualization type: " + b))
			}
			R(a) && (a = [a]);
			return a
		};
		N.yd = function(a, b) {
			var c = fs(this.fa);
			c || e(n("Invalid " + this.pd + " type: " + this.fa));
			var d, f = this.fa == dg;
			if (!this[E] || this[E][Rc] != c || f) {
				f || this.hf();
				d = new c(a);
				var h = this;
				co([sl, Gl, Ci, Xl], function(a) {
					google[E][jb].addListener(d, a, function(b) {
						a == sl && Qa(h, d);
						(a == sl || a == Xl) && bn(d[od]) && h[wc](d[od][G](d));
						google[E][jb].trigger(h, a, b)
					})
				})
			} else d = this[E];
			this.fh = b;
			c = xo(this[mb]());
			c = new Y({
				chartType: this.fa,
				dataTable: b,
				options: c,
				view: this[Cc]()
			});
			c.Yj();
			d[kd](c[tb](), c[mb](), this[od]())
		};
		N.pushView = function(a) {
			Q(this.Ob) ? this.Ob[s](a) : this.Ob = Xm(this.Ob) ? [a] : [this.Ob, a]
		};
		N.mk = function() {
			var d;
			var a = this[tb](),
				b = this[Cc]();
			if (b == vh) {
				b = this.fa;
				if (b == mg) {
					var c = this.getOption(Vh);
					if (c == ql || c == Cl) b = ng
				}
				if (d = (b = ys[b]) && b[Hb], b = d) a = (b = b.rk(a)) ? b[Rb]() : a
			} else if (Q(b))
				for (c = 0; c < b[B]; c++) a = google[E][md].fromJSON(a, b[c]);
			else P(b) && (a = google[E][md].fromJSON(a, b));
			this[Zc](k);
			this[hd](a)
		};
		N.uk = function(a, b) {
			if (b[Nb]()) this.Ek(a, b);
			else {
				var c = b[tb]();
				this.yd(a, c)
			}
		};
		N.Mj = function(a) {
			var a = {
					packages: this.Sk(),
					callback: a
				},
				b = Sm(Jj);
			Xm(b) && (b = mf);
			google.load(Em, b, a)
		};
		N.ah = function(a) {
			var b = this[tb]();
			b ? this.yd(a, b) : (b = jn(this.uk, this, a), b = google[E][Gd].createProtectedCallback(b, jn(
				this.jf, this, a)), this.sendQuery(b, i))
		};
		N.sendQuery = function(a, b) {
			var c = typeof b == Ch ? b : l,
				d = this[dd]() || J,
				d = new google[E].Query(d),
				f = this[nd]();
			f && c && d[fc](f);
			(c = this[yd]()) && d[$c](c);
			d[Jb](a)
		};
		N.lk = function() {
			var a = this.fa;
			if (!(Cs[a] != di || a == Mg)) {
				var a = this[tb](),
					b = this[mb]() || {},
					c = Ds(b, Kj);
				if (c != k) {
					for (var d = [{
							calc: c ? Zl : yi,
							sourceColumn: 0,
							type: M
						}], f = c ? 1 : 0, c = a[rb](); f < c; f++) d[s](f);
					a = new google[E][md](a);
					a[Md](d);
					Es(b, Kj, k);
					this[hd](a);
					this[Vc](b)
				}
			}
		};
		N.hf = function() {
			this[E] && bn(this[E].clearChart) && this[E].clearChart();
			Qa(this, k)
		};

		function Y(a) {
			Bs[G](this, Sh, a)
		}
		S(Y, Bs);
		N = Y[D];
		N.getChart = Bs[D].Gf;
		N.setChart = Bs[D].hl;
		N.setChartType = Bs[D].yf;
		N.getChartType = Bs[D].Kh;
		N.setChartName = Bs[D].Jf;
		N.getChartName = Bs[D][Kb];

		function Z(a) {
			Bs[G](this, bi, a)
		}
		S(Z, Bs);
		N = Z[D];
		N.getControl = Bs[D].Gf;
		N.setControlType = Bs[D].yf;
		N.getControlType = Bs[D].Kh;
		N.setControlName = Bs[D].Jf;
		N.getControlName = Bs[D][Kb];

		function $(a) {
			Bs[G](this, fi, a);
			a = a || {};
			R(a) && (a = xn(a));
			this.Ha = a.wrappers || k;
			this.nc = a.bindings || k;
			this.yf(a.dashboardType || Wf);
			this.wf()
		}
		S($, Bs);
		N = $[D];
		N.yd = function(a, b) {
			function c(a) {
				return h[a]
			}
			Tp(this[E]);
			for (var d = new google[E].Dashboard(a), f = this.nc || [], h = this.Ha, j = f[B], o = 0; o <
				j; o++) {
				var r = fo(f[o].controls, c),
					w = fo(f[o].participants, c);
				d[kc](r, w)
			}
			Qa(this, d);
			$.b.yd[G](this, a, b)
		};
		N.mh = function(a) {
			a.wrappers = this.Ha ? fo(this.Ha, function(a) {
				return a[Hc](k)
			}) : g;
			a.bindings = this.nc || g
		};
		N.setWrappers = function(a) {
			this.Ha = a || k;
			this.wf()
		};
		N.getWrappers = function() {
			return this.Ha
		};
		N.setBindings = function(a) {
			this.nc = a || k;
			this.wf()
		};
		N.getBindings = function() {
			return this.nc
		};
		N.getDashboard = Bs[D].Gf;
		N.setDashboardName = Bs[D].Jf;
		N.getDashboardName = Bs[D][Kb];
		N.wf = function() {
			var a = this.Ha,
				b = this.nc;
			if (!Fs(a) || !Fs(b)) this.Ha = fo(a, this.dk, this), this.nc = fo(b, this.ck, this)
		};
		N.dk = function(a) {
			this.oh(a) || (a = google[E].createWrapper(a));
			a[hd](k);
			a[Mc](k);
			return a
		};
		N.ck = function(a) {
			var b = a.controls,
				c = a.participants;
			(Fs(b) || Fs(c)) && e(n("invalid binding: " + a));
			b = fo(b, this.Ih, this);
			c = fo(c, this.Ih, this);
			return {
				controls: b,
				participants: c
			}
		};
		N.Ih = function(a) {
			!/[^0-9]/ [cb](a) && (a = fa(a, 10));
			if (an(a)) return a;
			var b = a;
			if (this.jk(a)) return this.oh(b) || (b = google[E].createWrapper(b)), this.Ha[s](b), this.Ha[
				B] - 1;
			a = this.ik();
			a = !An(b) ? bo(a, b) : -1; - 1 == a && e(n("Invalid wrapper name: " + b));
			return a
		};
		N.oh = function(a) {
			return bn(a[Hc])
		};
		N.jk = function(a) {
			var b = /${.*}^/;
			return $m(a) || R(a) && b[cb](a)
		};
		N.ik = function() {
			return fo(this.Ha, function(a) {
				return a[Kb]()
			})
		};

		function Fs(a) {
			return Q(a) ? 0 == a[B] : i
		};

		function Gs(a, b) {
			Hs(a)[kd](b)
		}

		function Hs(a) {
			a = a || {};
			R(a) && (a = xn(a));
			return a.controlType ? new google[E].ControlWrapper(a) : a.dashboardType ? new google[E]
				.DashboardWrapper(a) : new google[E].ChartWrapper(a)
		};

		function Is(a) {
			for (var b = 0, c = 0; c < a[B]; c++) b += a[c];
			return b
		};

		function Js(a, b, c, d, f) {
			this.aa = !!b;
			a && this.qc(a, d);
			Ba(this, f != g ? f : this.ua || 0);
			this.aa && Ba(this, -1 * this[gc]);
			this.Hd = !c
		}
		S(Js, Kp);
		N = Js[D];
		N.sa = k;
		N.ua = 0;
		N.Oe = l;
		N.qc = function(a, b, c) {
			if (this.sa = a) this.ua = an(b) ? b : 1 != this.sa[ib] ? 0 : this.aa ? -1 : 1;
			an(c) && Ba(this, c)
		};
		N.ue = function(a) {
			this.sa = a.sa;
			this.ua = a.ua;
			Ba(this, a[gc]);
			this.aa = a.aa;
			this.Hd = a.Hd
		};
		Ra(N, function() {
			return new Js(this.sa, this.aa, !this.Hd, this.ua, this[gc])
		});
		N.Zj = function() {
			var a = this.aa ? 1 : -1;
			if (this.ua == a) this.ua = -1 * a, Ba(this, this[gc] + this.ua * (this.aa ? -1 : 1))
		};
		Pa(N, function() {
			var a;
			if (this.Oe) {
				(!this.sa || this.Hd && 0 == this[gc]) && e(Jp);
				a = this.sa;
				var b = this.aa ? -1 : 1;
				if (this.ua == b) {
					var c = this.aa ? a[fd] : a[Vb];
					c ? this.qc(c) : this.qc(a, -1 * b)
				} else(c = this.aa ? a.previousSibling : a[oc]) ? this.qc(c) : this.qc(a[Hd], -1 * b);
				Ba(this, this[gc] + this.ua * (this.aa ? -1 : 1))
			} else this.Oe = i;
			(a = this.sa) || e(Jp);
			return a
		});
		N.yj = function() {
			return 1 == this.ua
		};
		N.splice = function(a) {
			var b = this.sa;
			this.Zj();
			this.aa = !this.aa;
			Js[D].next[G](this);
			this.aa = !this.aa;
			for (var c = Ym(arguments[0]) ? arguments[0] : arguments, d = c[B] - 1; 0 <= d; d--) b[Hd] && b[
				Hd][vb](c[d], b[oc]);
			zp(b)
		};

		function Ks(a, b) {
			Js[G](this, a, b, i)
		}
		S(Ks, Js);

		function Ls(a, b, c, d, f) {
			var h;
			if (a) {
				this.I = a;
				this.N = b;
				this.C = c;
				this.M = d;
				if (1 == a[ib] && a[Cd] != Lf)
					if (a = a[hc], b = a[b]) this.I = b, this.N = 0;
					else {
						if (a[B]) this.I = a[a[B] - 1];
						h = i
					} if (1 == c[ib])(this.C = c[hc][d]) ? this.M = 0 : this.C = c
			}
			Ks[G](this, f ? this.C : this.I, f);
			if (h) try {
				this.next()
			} catch (j) {
				j != Jp && e(j)
			}
		}
		S(Ls, Ks);
		N = Ls[D];
		N.I = k;
		N.C = k;
		N.N = 0;
		N.M = 0;
		N.ma = function() {
			return this.I
		};
		N.La = function() {
			return this.C
		};
		N.oj = function() {
			return this.Oe && this.sa == this.C && (!this.M || !this.yj())
		};
		Pa(N, function() {
			this.oj() && e(Jp);
			return Ls.b.next[G](this)
		});
		N.ue = function(a) {
			this.I = a.I;
			this.C = a.C;
			this.N = a.N;
			this.M = a.M;
			this.bg = a.bg;
			Ls.b.ue[G](this, a)
		};
		Ra(N, function() {
			var a = new Ls(this.I, this.N, this.C, this.M, this.bg);
			a.ue(this);
			return a
		});
		"ScriptEngine" in O && "JScript" == O.ScriptEngine() && (O.ScriptEngineMajorVersion(), O
			.ScriptEngineMinorVersion(), O.ScriptEngineBuildVersion());

		function Ms() {}
		Ms[D].Bg = function(a, b) {
			var c = b && !a[Za](),
				d = a.q;
			try {
				return c ? 0 <= this.ka(d, 0, 1) && 0 >= this.ka(d, 1, 0) : 0 <= this.ka(d, 0, 0) && 0 >=
					this.ka(d, 1, 1)
			} catch (f) {
				return T || e(f), l
			}
		};
		Ms[D].Qd = function() {
			return new Ls(this.ma(), this.Ya(), this.La(), this.ob())
		};

		function Ns(a) {
			this.q = a
		}
		S(Ns, Ms);

		function Os(a) {
			var b = kp(a).createRange();
			if (3 == a[ib]) b[Bc](a, 0), b[yb](a, a[B]);
			else if (Ps(a)) {
				for (var c, d = a;
					(c = d[Vb]) && Ps(c);) d = c;
				b[Bc](d, 0);
				for (d = a;
					(c = d[fd]) && Ps(c);) d = c;
				b[yb](d, 1 == d[ib] ? d[hc][B] : d[B])
			} else c = a[Hd], a = bo(c[hc], a), b[Bc](c, a), b[yb](c, a + 1);
			return b
		}

		function Qs(a, b, c, d) {
			var f = kp(a).createRange();
			f[Bc](a, b);
			f[yb](c, d);
			return f
		}
		N = Ns[D];
		Ra(N, function() {
			return new this[Rc](this.q.cloneRange())
		});
		N.getContainer = function() {
			return this.q.commonAncestorContainer
		};
		N.ma = function() {
			return this.q.startContainer
		};
		N.Ya = function() {
			return this.q.startOffset
		};
		N.La = function() {
			return this.q.endContainer
		};
		N.ob = function() {
			return this.q.endOffset
		};
		N.ka = function(a, b, c) {
			return this.q.compareBoundaryPoints(1 == c ? 1 == b ? O.Range.START_TO_START : O.Range
				.START_TO_END : 1 == b ? O.Range.END_TO_START : O.Range.END_TO_END, a)
		};
		N.isCollapsed = function() {
			return this.q.collapsed
		};
		N.select = function(a) {
			this.Td(qp(kp(this.ma())).getSelection(), a)
		};
		N.Td = function(a) {
			a.removeAllRanges();
			a.addRange(this.q)
		};
		N.collapse = function(a) {
			this.q[gb](a)
		};

		function Rs(a) {
			this.q = a
		}
		S(Rs, Ns);
		Rs[D].Td = function(a, b) {
			var c = b ? this.La() : this.ma(),
				d = b ? this.ob() : this.Ya(),
				f = b ? this.ma() : this.La(),
				h = b ? this.Ya() : this.ob();
			a[gb](c, d);
			(c != f || d != h) && a.extend(f, h)
		};

		function Ss(a, b) {
			this.q = a;
			this.aj = b
		}
		S(Ss, Ms);

		function Ts(a) {
			var b = kp(a)[ad].createTextRange();
			if (1 == a[ib]) b.moveToElementText(a), Ps(a) && !a[hc][B] && b[gb](l);
			else {
				for (var c = 0, d = a; d = d.previousSibling;) {
					var f = d[ib];
					if (3 == f) c += d[B];
					else if (1 == f) {
						b.moveToElementText(d);
						break
					}
				}
				d || b.moveToElementText(a[Hd]);
				b[gb](!d);
				c && b.move(Rh, c);
				b.moveEnd(Rh, a[B])
			}
			return b
		}

		function Us(a, b, c, d) {
			var C;
			var f = a,
				h = b,
				j = c,
				o = d,
				r = l;
			1 == f[ib] && (h = f[hc][h], r = !h, f = h || f[fd] || f, h = 0);
			var w = Ts(f);
			h && w.move(Rh, h);
			if (f == j && h == o) w[gb](i);
			else r && w[gb](l), r = l, 1 == j[ib] && (C = (h = j[hc][o]) || j[fd] || j, j = C, o = 0, r = !h),
				f = Ts(j), f[gb](!r), o && f.moveEnd(Rh, o), w.setEndPoint(Zf, f);
			o = new Ss(w, kp(a));
			o.I = a;
			o.N = b;
			o.C = c;
			o.M = d;
			return o
		}
		N = Ss[D];
		N.Va = k;
		N.I = k;
		N.C = k;
		N.N = -1;
		N.M = -1;
		Ra(N, function() {
			var a = new Ss(this.q.duplicate(), this.aj);
			a.Va = this.Va;
			a.I = this.I;
			a.C = this.C;
			return a
		});
		N.getContainer = function() {
			if (!this.Va) {
				var a = this.q.text,
					b = this.q.duplicate(),
					c = a[u](/ +$/, J);
				(c = a[B] - c[B]) && b.moveEnd(Rh, -c);
				c = b.parentElement();
				b = b.htmlText[u](/(\r\n|\r|\n)+/g, Sd)[B];
				if (this[Za]() && 0 < b) return this.Va = c;
				for (; b > c.outerHTML[u](/(\r\n|\r|\n)+/g, Sd)[B];) c = c[Hd];
				for (; 1 == c[hc][B] && c.innerText == (3 == c[Vb][ib] ? c[Vb].nodeValue : c[Vb]
					.innerText) && Ps(c[Vb]);) c = c[Vb];
				0 == a[B] && (c = this.Qg(c));
				this.Va = c
			}
			return this.Va
		};
		N.Qg = function(a) {
			for (var b = a[hc], c = 0, d = b[B]; c < d; c++) {
				var f = b[c];
				if (Ps(f)) {
					var h = Ts(f),
						j = h.htmlText != f.outerHTML;
					if (this[Za]() && j ? 0 <= this.ka(h, 1, 1) && 0 >= this.ka(h, 1, 0) : this.q.inRange(
						h)) return this.Qg(f)
				}
			}
			return a
		};
		N.ma = function() {
			if (!this.I && (this.I = this.Ec(1), this[Za]())) this.C = this.I;
			return this.I
		};
		N.Ya = function() {
			if (0 > this.N && (this.N = this.Sg(1), this[Za]())) this.M = this.N;
			return this.N
		};
		N.La = function() {
			if (this[Za]()) return this.ma();
			if (!this.C) this.C = this.Ec(0);
			return this.C
		};
		N.ob = function() {
			if (this[Za]()) return this.Ya();
			if (0 > this.M && (this.M = this.Sg(0), this[Za]())) this.N = this.M;
			return this.M
		};
		N.ka = function(a, b, c) {
			return this.q.compareEndPoints((1 == b ? Ng : Yf) + Ug + (1 == c ? Ng : Yf), a)
		};
		N.Ec = function(a, b) {
			var c = b || this.getContainer();
			if (!c || !c[Vb]) return c;
			for (var d = 1 == a, f = 0, h = c[hc][B]; f < h; f++) {
				var j = d ? f : h - f - 1,
					o = c[hc][j],
					r;
				try {
					r = Vs(o)
				} catch (w) {
					continue
				}
				var C = r.q;
				if (this[Za]())
					if (Ps(o)) {
						if (r.Bg(this)) return this.Ec(a, o)
					} else {
						if (0 == this.ka(C, 1, 1)) {
							this.N = this.M = j;
							break
						}
					}
				else {
					if (this.Bg(r)) {
						if (!Ps(o)) {
							d ? this.N = j : this.M = j + 1;
							break
						}
						return this.Ec(a, o)
					}
					if (0 > this.ka(C, 1, 0) && 0 < this.ka(C, 0, 1)) return this.Ec(a, o)
				}
			}
			return c
		};
		N.Aj = function(a, b, c) {
			return this.q.compareEndPoints((1 == b ? Ng : Yf) + Ug + (1 == c ? Ng : Yf), Vs(a).q)
		};
		N.Sg = function(a, b) {
			var c = 1 == a,
				d = b || (c ? this.ma() : this.La());
			if (1 == d[ib]) {
				for (var d = d[hc], f = d[B], h = c ? 1 : -1, j = c ? 0 : f - 1; 0 <= j && j < f; j += h) {
					var o = d[j];
					if (!Ps(o) && 0 == this.Aj(o, a, a)) return c ? j : j + 1
				}
				return -1 == j ? 0 : j
			}
			f = this.q.duplicate();
			h = Ts(d);
			f.setEndPoint(c ? Zf : Pg, h);
			f = f.text[B];
			return c ? d[B] - f : f
		};
		N.isCollapsed = function() {
			return 0 == this.q.compareEndPoints(Og, this.q)
		};
		N.select = function() {
			this.q.select()
		};
		N.collapse = function(a) {
			this.q[gb](a);
			a ? (this.C = this.I, this.M = this.N) : (this.I = this.C, this.N = this.M)
		};

		function Ws(a) {
			this.q = a
		}
		S(Ws, Ns);
		Ws[D].Td = function(a) {
			a[gb](this.ma(), this.Ya());
			(this.La() != this.ma() || this.ob() != this.Ya()) && a.extend(this.La(), this.ob());
			0 == a.rangeCount && a.addRange(this.q)
		};

		function Xs(a) {
			this.q = a
		}
		S(Xs, Ns);
		Xs[D].ka = function(a, b, c) {
			return $o(qf) ? Xs.b.ka[G](this, a, b, c) : this.q.compareBoundaryPoints(1 == c ? 1 == b ? O
				.Range.START_TO_START : O.Range.END_TO_START : 1 == b ? O.Range.START_TO_END : O.Range
				.END_TO_END, a)
		};
		Xs[D].Td = function(a, b) {
			a.removeAllRanges();
			b ? a.setBaseAndExtent(this.La(), this.ob(), this.ma(), this.Ya()) : a.setBaseAndExtent(this
			.ma(), this.Ya(), this.La(), this.ob())
		};

		function Vs(a) {
			if (T && !bp(9)) {
				var b = new Ss(Ts(a), kp(a));
				if (Ps(a)) {
					for (var c, d = a;
						(c = d[Vb]) && Ps(c);) d = c;
					b.I = d;
					b.N = 0;
					for (d = a;
						(c = d[fd]) && Ps(c);) d = c;
					b.C = d;
					b.M = 1 == d[ib] ? d[hc][B] : d[B];
					b.Va = a
				} else b.I = b.C = b.Va = a[Hd], b.N = bo(b.Va[hc], a), b.M = b.N + 1;
				a = b
			} else a = Mo ? new Xs(Os(a)) : Lo ? new Rs(Os(a)) : Ko ? new Ws(Os(a)) : new Ns(Os(a));
			return a
		}

		function Ps(a) {
			var b;
			a: if (1 != a[ib]) b = l;
				else {
					switch (a[Cd]) {
						case Gf:
						case Hf:
						case Jf:
						case Lf:
						case Pf:
						case bg:
						case gg:
						case jg:
						case kg:
						case ig:
						case lg:
						case sg:
						case zg:
						case Ag:
						case tg:
						case Dg:
						case Eg:
						case Jg:
						case Lg:
							b = l;
							break a
					}
					b = i
				}
			return b || 3 == a[ib]
		};

		function Ys(a, b) {
			a[$b](Bl, b);
			a.Il = b
		}

		function Zs(a, b, c) {
			a[$b](th + b, c)
		};

		function $s(a, b, c, d, f) {
			if (!T && (!Mo || !$o(pf))) return i;
			if (Fo && f) return at(a);
			if (f && !d) return l;
			if (!c && (17 == b || 18 == b)) return l;
			if (T && d && b == a) return l;
			switch (a) {
				case 13:
					return !(T && bp(9));
				case 27:
					return !Mo
			}
			return at(a)
		}

		function at(a) {
			if (48 <= a && 57 >= a) return i;
			if (96 <= a && 106 >= a) return i;
			if (65 <= a && 90 >= a) return i;
			if (Mo && 0 == a) return i;
			switch (a) {
				case 32:
				case 63:
				case 107:
				case 109:
				case 110:
				case 111:
				case 186:
				case 59:
				case 189:
				case 187:
				case 188:
				case 190:
				case 191:
				case 192:
				case 222:
				case 219:
				case 220:
				case 221:
					return i;
				default:
					return l
			}
		};

		function bt(a) {
			this.Pg = a;
			this.D = []
		}
		S(bt, Rp);
		var ct = [];
		N = bt[D];
		N.i = function(a, b, c, d, f) {
			Q(b) || (ct[0] = b, b = ct);
			for (var h = 0; h < b[B]; h++) this.D[s](hq(a, b[h], c || this, d || l, f || this.Pg || this));
			return this
		};
		N.X = function(a, b, c, d, f) {
			if (Q(b))
				for (var h = 0; h < b[B]; h++) this.X(a, b[h], c, d, f);
			else {
				a: {
					c = c || this;f = f || this.Pg || this;d = !!d;
					if (a = lq(a, b, d))
						for (b = 0; b < a[B]; b++)
							if (!a[b].Ib && a[b].kc == c && a[b][zb] == d && a[b].td == f) {
								a = a[b];
								break a
							} a = k
				}
				if (a) a = a.key,
				mq(a),
				io(this.D, a)
			}
			return this
		};
		N.removeAll = function() {
			co(this.D, mq);
			Ma(this.D, 0)
		};
		N.k = function() {
			bt.b.k[G](this);
			this[id]()
		};
		za(N, function() {
			e(n("EventHandler.handleEvent not implemented"))
		});

		function dt(a, b, c) {
			Sa(this, a);
			this.handle = b || a;
			this.lf = c || new Ir(NaN, NaN, NaN, NaN);
			this.o = kp(a);
			this.Ca = new bt(this);
			hq(this.handle, [om, Gk], this.ag, l, this)
		}
		S(dt, sq);
		var et = T || Lo && $o("1.9.3");
		N = dt[D];
		Ha(N, 0);
		Ia(N, 0);
		va(N, 0);
		wa(N, 0);
		N.sg = 0;
		N.tg = 0;
		N.ic = 0;
		N.jc = 0;
		N.vb = i;
		N.kb = l;
		N.qg = 0;
		N.Ji = 0;
		N.Ui = l;
		N.P = function() {
			return this.Ca
		};
		N.ig = function(a) {
			this.lf = a || new Ir(NaN, NaN, NaN, NaN)
		};
		N.k = function() {
			dt.b.k[G](this);
			kq(this.handle, [om, Gk], this.ag, l, this);
			this.Ca.Q();
			delete this[ed];
			delete this.handle;
			delete this.Ca
		};
		N.ag = function(a) {
			var b = a[z] == Gk;
			if (this.vb && !this.kb && (!b || a.ne())) {
				this.Be(a);
				if (0 == this.qg)
					if (this.rg(a), this.kb) a[ub]();
					else return;
				else a[ub]();
				this.Ki();
				Ha(this, this.sg = a[sc]);
				Ia(this, this.tg = a[tc]);
				va(this, a[Eb]);
				wa(this, a[Fb]);
				this.ic = this[ed].offsetLeft;
				this.jc = this[ed][Jd];
				this.Ie = ip(this.o).ac();
				this.Ji = ln()
			} else this[x](xi)
		};
		N.Ki = function() {
			var a = this.o,
				b = a[uc],
				c = !et;
			this.Ca.i(a, [nm, Hk], this.Ti, c);
			this.Ca.i(a, [mm, Kk], this.sd, c);
			et ? (b.setCapture(l), this.Ca.i(b, vk, this.sd)) : this.Ca.i(qp(a), Ah, this.sd);
			T && this.Ui && this.Ca.i(a, vi, Zp);
			this.Wi && this.Ca.i(this.Wi, Fl, this.Vi, c)
		};
		N.rg = function(a) {
			if (this[x](new ft(Wl, this, a[sc], a[tc], a)) !== l) this.kb = i
		};
		N.sd = function(a, b) {
			this.Ca[id]();
			et && this.o.releaseCapture();
			var c = this.zg(this.ic),
				d = this.Ag(this.jc);
			if (this.kb) this.Be(a), this.kb = l, this[x](new ft(Ai, this, a[sc], a[tc], a, c, d, b || a[
				z] == lm));
			else this[x](xi);
			(a[z] == mm || a[z] == lm) && a[ub]()
		};
		N.Be = function(a) {
			var b = a[z];
			b == om || b == nm ? a.Pb(a.Y[wb][0], a[Cb]) : (b == mm || b == lm) && a.Pb(a.Y.changedTouches[
				0], a[Cb])
		};
		N.Ti = function(a) {
			if (this.vb) {
				this.Be(a);
				var b = a[sc] - this[sc],
					c = a[tc] - this[tc];
				Ha(this, a[sc]);
				Ia(this, a[tc]);
				va(this, a[Eb]);
				wa(this, a[Fb]);
				if (!this.kb) {
					var d = this.sg - this[sc],
						f = this.tg - this[tc];
					if (d * d + f * f > this.qg && (this.rg(a), !this.kb)) {
						this.sd(a);
						return
					}
				}
				c = this.Tg(b, c);
				b = c.x;
				c = c.y;
				this.kb && this[x](new ft(wh, this, a[sc], a[tc], a, b, c)) !== l && (this.Ug(a, b, c, l),
					a[ub]())
			}
		};
		N.Tg = function(a, b) {
			var c = ip(this.o).ac(),
				a = a + (c.x - this.Ie.x),
				b = b + (c.y - this.Ie.y);
			this.Ie = c;
			this.ic += a;
			this.jc += b;
			var c = this.zg(this.ic),
				d = this.Ag(this.jc);
			return new Ln(c, d)
		};
		N.Vi = function(a) {
			var b = this.Tg(0, 0);
			Ha(a, this[sc]);
			Ia(a, this[tc]);
			this.Ug(a, b.x, b.y, i)
		};
		N.Ug = function(a, b, c) {
			this.Tk(b, c);
			this[x](new ft(ui, this, a[sc], a[tc], a, b, c))
		};
		N.zg = function(a) {
			var b = this.lf,
				c = !la(b[y]) ? b[y] : k,
				b = !la(b[t]) ? b[t] : 0;
			return q.min(c != k ? c + b : ea, q.max(c != k ? c : -ea, a))
		};
		N.Ag = function(a) {
			var b = this.lf,
				c = !la(b.top) ? b.top : k,
				b = !la(b[I]) ? b[I] : 0;
			return q.min(c != k ? c + b : ea, q.max(c != k ? c : -ea, a))
		};
		N.Tk = function(a, b) {
			ua(this[ed][F], a + pl);
			this[ed][F].top = b + pl
		};

		function ft(a, b, c, d, f, h, j, o) {
			Yp[G](this, a);
			Ha(this, c);
			Ia(this, d);
			this.kl = f;
			ua(this, Wm(h) ? h : b.ic);
			this.top = Wm(j) ? j : b.jc;
			this.ml = b;
			this.ll = !!o
		}
		S(ft, Yp);

		function gt(a) {
			this.j = a;
			a = T ? Ji : Ah;
			this.ni = hq(this.j, T ? Ii : Hi, this, !T);
			this.oi = hq(this.j, a, this, !T)
		}
		S(gt, sq);
		za(gt[D], function(a) {
			var b = new $p(a.Y);
			Ca(b, a[z] == Ii || a[z] == Hi ? Ii : Ji);
			try {
				this[x](b)
			} finally {
				b.Q()
			}
		});
		gt[D].k = function() {
			gt.b.k[G](this);
			mq(this.ni);
			mq(this.oi);
			delete this.j
		};

		function ht() {}
		Um(ht);
		ht[D].$k = 0;
		ht[D].zk = function() {
			return uf + (this.$k++)[yc](36)
		};
		ht.qa();

		function it(a) {
			this.fb = a || ip();
			this.Hc = jt
		}
		S(it, sq);
		it[D].Ak = ht.qa();
		var jt = k;

		function kt(a, b) {
			switch (a) {
				case 1:
					return b ? pi : zi;
				case 2:
					return b ? Qj : vm;
				case 4:
					return b ? nh : ji;
				case 8:
					return b ? Gl : wm;
				case 16:
					return b ? Th : um;
				case 32:
					return b ? Hi : Ah;
				case 64:
					return b ? Xk : Yh
			}
			e(n("Invalid component state"))
		}
		N = it[D];
		N.Ad = k;
		N.r = l;
		N.j = k;
		N.Hc = k;
		N.je = k;
		N.Aa = k;
		N.U = k;
		N.Na = k;
		N.Yh = l;
		N.Vb = function() {
			return this.Ad || (this.Ad = this.Ak.zk())
		};
		N.a = function() {
			return this.j
		};
		N.dg = function(a) {
			this.j = a
		};
		N.P = function() {
			return this.bc || (this.bc = new bt(this))
		};
		N.$d = function(a) {
			this == a && e(n(Wg));
			a && this.Aa && this.Ad && this.Aa.ce(this.Ad) && this.Aa != a && e(n(Wg));
			this.Aa = a;
			it.b.Qe[G](this, a)
		};
		N.getParent = function() {
			return this.Aa
		};
		N.Qe = function(a) {
			this.Aa && this.Aa != a && e(n("Method not supported"));
			it.b.Qe[G](this, a)
		};
		N.t = function() {
			return this.fb
		};
		N.d = function() {
			this.j = this.fb[Pb](ti)
		};
		N.ub = function(a) {
			this.Sf(a)
		};
		N.Sf = function(a, b) {
			this.r && e(n(Tf));
			this.j || this.d();
			a ? a[vb](this.j, b || k) : this.fb.o[ad][Ya](this.j);
			(!this.Aa || this.Aa.r) && this.K()
		};
		N.K = function() {
			this.r = i;
			this.rb(function(a) {
				!a.r && a.a() && a.K()
			})
		};
		N.ba = function() {
			this.rb(function(a) {
				a.r && a.ba()
			});
			this.bc && this.bc[id]();
			this.r = l
		};
		N.k = function() {
			it.b.k[G](this);
			this.r && this.ba();
			this.bc && (this.bc.Q(), delete this.bc);
			this.rb(function(a) {
				a.Q()
			});
			!this.Yh && this.j && zp(this.j);
			this.Aa = this.je = this.j = this.Na = this.U = k
		};
		N.fl = function(a) {
			this.je = a
		};
		N.Dd = function(a, b) {
			this.Cc(a, this.ab(), b)
		};
		N.Cc = function(a, b, c) {
			a.r && (c || !this.r) && e(n(Tf));
			(0 > b || b > this.ab()) && e(n("Child component index out of bounds"));
			if (!this.Na || !this.U) this.Na = {}, this.U = [];
			if (a[ab]() == this) this.Na[a.Vb()] = a, io(this.U, a);
			else {
				var d = this.Na,
					f = a.Vb();
				f in d && e(n('The object already contains the key "' + f + Xd));
				d[f] = a
			}
			a.$d(this);
			mo(this.U, b, 0, a);
			a.r && this.r && a[ab]() == this ? (c = this.S(), c[vb](a.a(), c[hc][b] || k)) : c ? (this.j ||
					this.d(), b = this.bb(b + 1), a.Sf(this.S(), b ? b.j : k)) : this.r && !a.r && a.j && a
				.K()
		};
		N.S = function() {
			return this.j
		};
		N.le = function() {
			if (this.Hc == k) this.Hc = Sr(this.r ? this.j : this.fb.o[ad]);
			return this.Hc
		};
		N.dc = function(a) {
			this.r && e(n(Tf));
			this.Hc = a
		};
		N.Pk = function() {
			return !!this.U && 0 != this.U[B]
		};
		N.ab = function() {
			return this.U ? this.U[B] : 0
		};
		N.ce = function(a) {
			return this.Na && a ? (a in this.Na ? this.Na[a] : g) || k : k
		};
		N.bb = function(a) {
			return this.U ? this.U[a] || k : k
		};
		N.rb = function(a, b) {
			this.U && co(this.U, a, b)
		};
		N.Vc = function(a) {
			return this.U && a ? bo(this.U, a) : -1
		};
		N.removeChild = function(a, b) {
			if (a) {
				var c = R(a) ? a : a.Vb(),
					a = this.ce(c);
				c && a && (vo(this.Na, c), io(this.U, a), b && (a.ba(), a.j && zp(a.j)), a.$d(k))
			}
			a || e(n("Child is not in parent component"));
			return a
		};
		N.Qk = function(a, b) {
			return this[bd](this.bb(a), b)
		};
		N.vg = function(a) {
			for (; this.Pk();) this.Qk(0, a)
		};

		function lt(a, b) {
			it[G](this, b);
			this.pi = !!a
		}
		S(lt, it);
		N = lt[D];
		N.ae = k;
		N.n = l;
		N.ca = k;
		N.V = k;
		N.ya = k;
		N.A = function() {
			return xj
		};
		N.Yc = function() {
			return this.ca
		};
		N.d = function() {
			lt.b.d[G](this);
			var a = this.a();
			gp(a, this.A());
			Gp(a, i);
			Yr(a, l);
			this.ei();
			this.di()
		};
		N.ei = function() {
			if (this.pi && !this.V) this.V = this.t().d(bk, {
				frameborder: 0,
				style: Eh,
				src: ik
			}), Oa(this.V, this.A() + xe), Yr(this.V, l), Xr(this.V, 0);
			if (!this.ca) this.ca = this.t().d(ti, this.A() + xe), Yr(this.ca, l)
		};
		N.di = function() {
			if (!this.ya) this.ya = this.t()[Pb](Ul), Yr(this.ya, l), Gp(this.ya, i), this.ya[F].position =
				lh
		};
		N.Xh = function() {
			this.V && yp(this.V, this.a());
			yp(this.ca, this.a())
		};
		N.K = function() {
			this.Xh();
			lt.b.K[G](this);
			var a = this.a();
			a[Hd] && a[Hd][vb](this.ya, a[oc]);
			this.ae = new gt(this.t().o);
			this.P().i(this.ae, Ii, this.Wh)
		};
		N.ba = function() {
			this.n && this.F(l);
			Tp(this.ae);
			lt.b.ba[G](this);
			zp(this.V);
			zp(this.ca);
			zp(this.ya)
		};
		N.F = function(a) {
			a != this.n && (a ? this.Vj() : this.Uj())
		};
		N.Vj = function() {
			if (this[x](yh)) this.ye(), this.vc(), this.P().i(this.t().ed(), yl, this.ye), this.hg(i), this[
				Ob](), this.n = i, this[x](Ql)
		};
		N.Uj = function() {
			if (this[x](xh)) this.P().X(this.t().ed(), yl, this.ye), this.hg(l), this.n = l, this[x](Pj)
		};
		N.hg = function(a) {
			this.V && Yr(this.V, a);
			this.ca && Yr(this.ca, a);
			Yr(this.a(), a);
			Yr(this.ya, a)
		};
		N.focus = function() {
			this.th()
		};
		N.ye = function() {
			this.V && Yr(this.V, l);
			this.ca && Yr(this.ca, l);
			var a = this.t().o,
				b = op(qp(a) || ba || ba),
				c = q.max(a[ad].scrollWidth, b[t]),
				a = q.max(a[ad][Sb], b[I]);
			this.V && (Yr(this.V, i), Tr(this.V, c, a));
			this.ca && (Yr(this.ca, i), Tr(this.ca, c, a))
		};
		N.vc = function() {
			var a = this.t().o,
				b = qp(a) || ba;
			if (Lr(this.a()) == Gi) var c = a = 0;
			else c = this.t().ac(), a = c.x, c = c.y;
			var d = Ur(this.a()),
				b = op(b || ba),
				a = q.max(a + b[t] / 2 - d[t] / 2, 0),
				c = q.max(c + b[I] / 2 - d[I] / 2, 0);
			Mr(this.a(), a, c);
			Mr(this.ya, a, c)
		};
		N.Wh = function(a) {
			if (a[ed] == this.ya) a = this.th, bn(a) ? this && (a = jn(a, this)) : a && typeof a[bc] == Mi ?
				a = jn(a[bc], a) : e(n(pg)), uq[Lc](a, 0)
		};
		N.th = function() {
			try {
				T && this.t().o[ad][Ob](), this.a()[Ob]()
			} catch (a) {}
		};

		function mt(a, b, c) {
			lt[G](this, b, c);
			this.za = a || Ek;
			this.cb = nt()
		}
		S(mt, lt);
		N = mt[D];
		N.xi = i;
		N.Mf = i;
		N.Nf = i;
		N.$h = i;
		N.be = 0.5;
		N.Vh = J;
		N.na = J;
		N.ib = k;
		N.fi = l;
		N.Zb = k;
		N.Pc = k;
		N.Pf = k;
		N.Oc = k;
		N.tc = k;
		N.Ma = k;
		N.A = function() {
			return this.za
		};
		Fa(N, function(a) {
			this.na = a;
			this.tc && qa(this.tc, a)
		});
		N.zd = function() {
			this.a() || this.ub()
		};
		N.S = function() {
			this.zd();
			return this.tc
		};
		N.$i = function() {
			this.zd();
			return this.Pc
		};
		N.Zi = function() {
			this.zd();
			return this.Ma
		};
		N.Yc = function() {
			this.zd();
			return mt.b.Yc[G](this)
		};
		N.Uh = function(a) {
			this.be = a;
			this.a() && (a = this.Yc()) && Xr(a, this.be)
		};
		N.bi = function(a) {
			this.Nf = a;
			if (this.r) {
				var b = this.t(),
					c = this.Yc(),
					d = this.V;
				a ? (d && b.se(d, this.a()), b.se(c, this.a())) : (b.removeNode(d), b.removeNode(c))
			}
		};
		N.qi = function() {
			return new dt(this.a(), this.Zb)
		};
		N.Qf = function(a) {
			if (this.a()) {
				var b = this.Zb,
					c = this.za + Se;
				a ? gp(b, c) : hp(b, c)
			}
			if (a && !this.ib) this.ib = this.qi(), gp(this.Zb, this.za + Se), hq(this.ib, Wl, this.ri, l,
				this);
			else if (!a && this.ib) this.ib.Q(), this.ib = k
		};
		N.d = function() {
			mt.b.d[G](this);
			var a = this.a(),
				b = this.t();
			this.Zb = b.d(ti, {
				className: this.za + Qe,
				id: this.Vb()
			}, this.Pc = b.d(Ul, this.za + Te, this.Vh), this.Oc = b.d(Ul, this.za + Re));
			wp(a, this.Zb, this.tc = b.d(ti, this.za + Ce), this.Ma = b.d(ti, this.za + ye));
			this.Pf = this.Zb.id;
			Ys(a, mi);
			Zs(a, qk, this.Pf || J);
			this.na && qa(this.tc, this.na);
			Yr(this.Oc, this.Mf);
			this.cb && this.cb.Th(this.Ma);
			Yr(this.Ma, !!this.cb);
			this.Uh(this.be)
		};
		N.K = function() {
			mt.b.K[G](this);
			this.P().i(this, [Ql, Pj], this.ci);
			this.Qf(this.$h);
			this.P().i(this.Oc, Xh, this.ai);
			Ys(this.a(), mi);
			this.Pc.id !== J && Zs(this.a(), qk, this.Pc.id);
			this.Nf || this.bi(l)
		};
		N.ba = function() {
			this.n && this.F(l);
			this.Qf(l);
			mt.b.ba[G](this)
		};
		N.F = function(a) {
			a != this.n && (this.r || this.ub(), mt.b.F[G](this, a))
		};
		N.ci = function(a) {
			a[ed] == this && (this.n ? (this.P().i(this.a(), mk, this.cd).i(this.a(), ok, this.cd), this[x](
				qh), this.P().i(this.Ma, Xh, this.Xf)) : (this.P().X(this.a(), mk, this.cd).X(this
				.a(), ok, this.cd).X(this.Ma, Xh, this.Xf), this[x](ph), this.fi && this.Q()))
		};
		N.focus = function() {
			mt.b[Ob][G](this);
			if (this.cb) {
				var a = this.cb.Sc;
				if (a)
					for (var b = this.t().o, c = this.Ma[rc](Oh), d = 0, f; f = c[d]; d++)
						if (f[nc] == a) {
							try {
								if (Mo || Ko) {
									var h = b[Pb](gk);
									h[F].cssText = ll;
									this.a()[Ya](h);
									h[Ob]();
									this.a()[bd](h)
								}
								f[Ob]()
							} catch (j) {}
							break
						}
			}
		};
		N.ri = function() {
			var a = this.t().o,
				b = op(qp(a) || ba || ba),
				c = q.max(a[ad].scrollWidth, b[t]),
				a = q.max(a[ad][Sb], b[I]),
				d = Ur(this.a());
			Lr(this.a()) == Gi ? this.ib.ig(new Ir(0, 0, q.max(0, b[t] - d[t]), q.max(0, b[I] - d[I]))) :
				this.ib.ig(new Ir(0, 0, c - d[t], a - d[I]))
		};
		N.ai = function() {
			if (this.Mf) {
				var a = this.cb,
					b = a && a.De;
				b ? (a = a.get(b), this[x](new ot(b, a)) && this.F(l)) : this.F(l)
			}
		};
		N.k = function() {
			this.Ma = this.Oc = k;
			mt.b.k[G](this)
		};
		N.Xf = function(a) {
			if ((a = this.Wj(a[ed])) && !a[Wc]) {
				var a = a[nc],
					b = this.cb.get(a);
				this[x](new ot(a, b)) && this.F(l)
			}
		};
		N.Wj = function(a) {
			for (; a != k && a != this.Ma;) {
				if (a[Cd] == Mf) return a;
				a = a[Hd]
			}
			return k
		};
		N.cd = function(a) {
			var b = l,
				c = l,
				d = this.cb,
				f = a[ed];
			if (a[z] == mk)
				if (this.xi && 27 == a[Tb]) {
					var h = d && d.De,
						f = f[Cd] == Kg && !f[Wc];
					h && !f ? (c = i, b = d.get(h), b = this[x](new ot(h, b))) : f || (b = i)
				} else 9 == a[Tb] && a[Bd] && f == this.a() && (c = i);
			else if (13 == a[Tb]) {
				if (f[Cd] == Mf) h = f[nc];
				else if (d) {
					var j = d.Sc,
						o = j && d.yi(j),
						f = (f[Cd] == Rg || f[Cd] == Kg) && !f[Wc];
					o && !o[Wc] && !f && (h = j)
				}
				h && d && (c = i, b = this[x](new ot(h, J + d.get(h))))
			}
			if (b || c) a[Sc](), a[ub]();
			b && this.F(l)
		};

		function ot(a, b) {
			Ca(this, ni);
			this.key = a;
			this.caption = b
		}
		S(ot, Yp);

		function pt(a) {
			this.fb = a || ip();
			Np[G](this)
		}
		S(pt, Np);
		N = pt[D];
		N.za = "goog-buttonset";
		N.Sc = k;
		N.j = k;
		N.De = k;
		N.set = function(a, b, c, d) {
			Np[D].set[G](this, a, b);
			if (c) this.Sc = a;
			if (d) this.De = a;
			return this
		};
		N.va = function(a, b, c) {
			return this.set(a.key, a.caption, b, c)
		};
		N.Th = function(a) {
			this.j = a;
			this.ub()
		};
		N.ub = function() {
			if (this.j) {
				qa(this.j, J);
				var a = ip(this.j);
				Mp(this, function(b, c) {
					var d = a.d(Oh, {
						name: c
					}, b);
					c == this.Sc && Oa(d, this.za + De);
					this.j[Ya](d)
				}, this)
			}
		};
		N.a = function() {
			return this.j
		};
		N.t = function() {
			return this.fb
		};
		N.yi = function(a) {
			for (var b = this.Vk(), c = 0, d; d = b[c]; c++)
				if (d[nc] == a || d.id == a) return d;
			return k
		};
		N.Vk = function() {
			return this.j[rc](Mf)
		};
		var qt = {
				key: "ok",
				caption: "OK"
			},
			rt = {
				key: "cancel",
				caption: "Cancel"
			},
			st = {
				key: "yes",
				caption: "Yes"
			},
			tt = {
				key: "no",
				caption: "No"
			},
			ut = {
				key: "save",
				caption: "Save"
			},
			vt = {
				key: "continue",
				caption: "Continue"
			};

		function nt() {
			return (new pt).va(qt, i).va(rt, l, i)
		}
		"undefined" != typeof ja && ((new pt).va(qt, i, i), nt(), (new pt).va(st, i).va(tt, l, i), (new pt).va(
			st).va(tt, i).va(rt, l, i), (new pt).va(vt).va(ut).va(rt, i, i));

		function wt(a, b) {
			a && this.Tf(a, b)
		}
		S(wt, sq);
		N = wt[D];
		N.j = k;
		N.Fd = k;
		N.cf = k;
		N.Gd = k;
		N.mb = -1;
		N.lb = -1;
		var xt = {
				3: 13,
				12: 144,
				63232: 38,
				63233: 40,
				63234: 37,
				63235: 39,
				63236: 112,
				63237: 113,
				63238: 114,
				63239: 115,
				63240: 116,
				63241: 117,
				63242: 118,
				63243: 119,
				63244: 120,
				63245: 121,
				63246: 122,
				63247: 123,
				63248: 44,
				63272: 46,
				63273: 36,
				63275: 35,
				63276: 33,
				63277: 34,
				63289: 144,
				63302: 45
			},
			yt = {
				Up: 38,
				Down: 40,
				Left: 37,
				Right: 39,
				Enter: 13,
				F1: 112,
				F2: 113,
				F3: 114,
				F4: 115,
				F5: 116,
				F6: 117,
				F7: 118,
				F8: 119,
				F9: 120,
				F10: 121,
				F11: 122,
				F12: 123,
				"U+007F": 46,
				Home: 36,
				End: 35,
				PageUp: 33,
				PageDown: 34,
				Insert: 45
			},
			zt = {
				61: 187,
				59: 186
			},
			At = T || Mo && $o(pf);
		N = wt[D];
		N.Bj = function(a) {
			if (Mo && (17 == this.mb && !a[Oc] || 18 == this.mb && !a[zc])) this.lb = this.mb = -1;
			At && !$s(a[Tb], this.mb, a[Bd], a[Oc], a[zc]) ? this[bc](a) : this.lb = Lo && a[Tb] in zt ? zt[
				a[Tb]] : a[Tb]
		};
		N.Cj = function() {
			this.lb = this.mb = -1
		};
		za(N, function(a) {
			var b = a.Y,
				c, d;
			T && a[z] == ok ? (c = this.lb, d = 13 != c && 27 != c ? b[Tb] : 0) : Mo && a[z] == ok ? (
				c = this.lb, d = 0 <= b[Lb] && 63232 > b[Lb] && at(c) ? b[Lb] : 0) : Ko ? (c = this
				.lb, d = at(c) ? b[Tb] : 0) : (c = b[Tb] || this.lb, d = b[Lb] || 0, Fo && 63 ==
				d && !c && (c = 191));
			var f = c,
				h = b.keyIdentifier;
			c ? 63232 <= c && c in xt ? f = xt[c] : 25 == c && a[Bd] && (f = 9) : h && h in yt && (f =
				yt[h]);
			a = f == this.mb;
			this.mb = f;
			b = new Bt(f, d, a, b);
			try {
				this[x](b)
			} finally {
				b.Q()
			}
		});
		N.a = function() {
			return this.j
		};
		N.Tf = function(a, b) {
			this.Gd && this.detach();
			this.j = a;
			this.Fd = hq(this.j, ok, this, b);
			this.cf = hq(this.j, mk, this.Bj, b, this);
			this.Gd = hq(this.j, pk, this.Cj, b, this)
		};
		N.detach = function() {
			if (this.Fd) mq(this.Fd), mq(this.cf), mq(this.Gd), this.Gd = this.cf = this.Fd = k;
			this.j = k;
			this.lb = this.mb = -1
		};
		N.k = function() {
			wt.b.k[G](this);
			this.detach()
		};

		function Bt(a, b, c, d) {
			d && this.Pb(d, g);
			Ca(this, lk);
			ya(this, a);
			this.charCode = b;
			this.repeat = c
		}
		S(Bt, $p);

		function Ct() {}
		var Dt;
		Um(Ct);
		N = Ct[D];
		N.nb = function() {};
		N.d = function(a) {
			var b = a.t().d(ti, this.hc(a)[Ld](Sd), a.na);
			this.Je(a, b);
			return b
		};
		N.S = function(a) {
			return a
		};
		N.xd = function(a, b, c) {
			if (a = a.a ? a.a() : a)
				if (T && !$o(sf)) {
					var d = this.kg(fp(a), b);
					d[s](b);
					kn(c ? gp : hp, a)[Ad](k, d)
				} else c ? gp(a, b) : hp(a, b)
		};
		N.Xg = function(a, b, c) {
			this.xd(a, b, c)
		};
		N.Wb = function(a) {
			a.le() && this.dc(a.a(), i);
			a[gd]() && this.Ab(a, a.n)
		};
		N.li = function(a, b) {
			var c = b || this.nb();
			c && Ys(a, c)
		};
		N.Je = function(a, b) {
			a[gd]() || this.da(b, 1, i);
			a.Wg() && this.da(b, 8, i);
			a.T(16) && this.da(b, 16, a.ke());
			a.T(64) && this.da(b, 64, a.cc())
		};
		N.$c = function(a, b) {
			$r(a, !b, !T && !Ko)
		};
		N.dc = function(a, b) {
			this.xd(a, this.oc() + Ne, b)
		};
		N.sb = function(a) {
			var b;
			return a.T(32) && (b = a.R()) ? Fp(b) : l
		};
		N.Ab = function(a, b) {
			var c;
			if (a.T(32) && (c = a.R())) {
				if (!b && a.Yg()) {
					try {
						c.blur()
					} catch (d) {}
					a.Yg() && a.yb(k)
				}
				Fp(c) != b && Gp(c, b)
			}
		};
		N.F = function(a, b) {
			Yr(a, b)
		};
		La(N, function(a, b, c) {
			var d = a.a();
			if (d) {
				var f = this.kd(b);
				f && this.xd(a, f, c);
				this.da(d, b, c)
			}
		});
		N.da = function(a, b, c) {
			Dt || (Dt = {
				1: qi,
				8: Hl,
				16: Uh,
				64: Di
			});
			(b = Dt[b]) && Zs(a, b, c)
		};
		Fa(N, function(a, b) {
			var c = this.S(a);
			if (c && (xp(c), b))
				if (R(b)) Bp(c, b);
				else {
					var d = function(a) {
						if (a) {
							var b = kp(c);
							c[Ya](R(a) ? b[qb](a) : a)
						}
					};
					Q(b) ? co(b, d) : Ym(b) && !(Pk in b) ? co(ko(b), d) : d(b)
				}
		});
		N.R = function(a) {
			return a.a()
		};
		N.A = function() {
			return nj
		};
		N.oc = function() {
			return this.A()
		};
		N.hc = function(a) {
			var b = this.A(),
				c = [b],
				d = this.oc();
			d != b && c[s](d);
			b = this.Fj(a[od]());
			c[s][Ad](c, b);
			(a = a.Ea) && c[s][Ad](c, a);
			T && !$o(sf) && c[s][Ad](c, this.kg(c));
			return c
		};
		N.kg = function(a, b) {
			var c = [];
			b && (a = a[ob]([b]));
			co([], function(d) {
				go(d, kn(ho, a)) && (!b || ho(d, b)) && c[s](d[Ld](hh))
			});
			return c
		};
		N.Fj = function(a) {
			for (var b = []; a;) {
				var c = a & -a;
				b[s](this.kd(c));
				a &= ~c
			}
			return b
		};
		N.kd = function(a) {
			this.uh || this.Hk();
			return this.uh[a]
		};
		N.Hk = function() {
			var a = this.oc();
			this.uh = {
				1: a + Ee,
				2: a + Je,
				4: a + we,
				8: a + Pe,
				16: a + Be,
				32: a + Ge,
				64: a + Le
			}
		};

		function Et(a, b) {
			a || e(n("Invalid class name " + a));
			bn(b) || e(n("Invalid decorator function " + b))
		}
		var Ft = {};

		function Gt(a, b, c) {
			it[G](this, c);
			if (!b) {
				for (var b = this[Rc], d; b;) {
					d = cn(b);
					if (d = Ft[d]) break;
					b = b.b ? b.b[Rc] : k
				}
				b = d ? bn(d.qa) ? d.qa() : new d : k
			}
			this.l = b;
			this.Zf(a)
		}
		S(Gt, it);
		N = Gt[D];
		N.na = k;
		N.Sa = 0;
		N.uc = 39;
		N.Sd = 255;
		N.Ld = 0;
		N.n = i;
		N.Ea = k;
		N.de = i;
		N.ee = l;
		N.fg = k;
		N.ie = function(a) {
			this.r && a != this.de && this.Rf(a);
			this.de = a
		};
		N.R = function() {
			return this.l.R(this)
		};
		N.Wc = function() {
			return this.ia || (this.ia = new wt)
		};
		N.Mk = function(a) {
			if (a) this.Ea ? ho(this.Ea, a) || this.Ea[s](a) : this.Ea = [a], this.l.Xg(this, a, i)
		};
		N.Rk = function(a) {
			if (a && this.Ea) {
				io(this.Ea, a);
				if (0 == this.Ea[B]) this.Ea = k;
				this.l.Xg(this, a, l)
			}
		};
		N.xd = function(a, b) {
			b ? this.Mk(a) : this.Rk(a)
		};
		N.d = function() {
			var a = this.l.d(this);
			this.dg(a);
			this.l.li(a, this.fg);
			this.ee || this.l.$c(a, l);
			this.n || this.l.F(a, l)
		};
		N.Hh = function(a) {
			this.fg = a
		};
		N.S = function() {
			return this.l.S(this.a())
		};
		N.K = function() {
			Gt.b.K[G](this);
			this.l.Wb(this);
			if (this.uc & -2 && (this.de && this.Rf(i), this.T(32))) {
				var a = this.R();
				if (a) {
					var b = this.Wc();
					b.Tf(a);
					this.P().i(b, lk, this.wa).i(a, Hi, this.Xc).i(a, Ah, this.yb)
				}
			}
		};
		N.Rf = function(a) {
			var b = this.P(),
				c = this.a();
			a ? (b.i(c, Jk, this.qe).i(c, Gk, this.tb).i(c, Kk, this.zb).i(c, Ik, this.pe), T && b.i(c, ii,
				this.$f)) : (b.X(c, Jk, this.qe).X(c, Gk, this.tb).X(c, Kk, this.zb).X(c, Ik, this.pe),
				T && b.X(c, ii, this.$f))
		};
		N.ba = function() {
			Gt.b.ba[G](this);
			this.ia && this.ia.detach();
			this.n && this[gd]() && this.l.Ab(this, l)
		};
		N.k = function() {
			Gt.b.k[G](this);
			this.ia && (this.ia.Q(), delete this.ia);
			delete this.l;
			this.Ea = this.na = k
		};
		Fa(N, function(a) {
			this.l[mc](this.a(), a);
			this.Zf(a)
		});
		N.Zf = function(a) {
			this.na = a
		};
		N.wc = function() {
			var a = this.na;
			if (!a) return J;
			if (!R(a))
				if (Q(a)) a = fo(a, Hp)[Ld](J);
				else {
					if (ep && fk in a) a = a.innerText[u](/(\r\n|\r|\n)/g, Qd);
					else {
						var b = [];
						Ip(a, b, i);
						a = b[Ld](J)
					}
					a = a[u](/ \xAD /g, Sd)[u](/\xAD/g, J);
					a = a[u](/\u200B/g, J);
					ep || (a = a[u](/ +/g, Sd));
					a != Sd && (a = a[u](/^\s*/, J))
				} return Bn(a)
		};
		N.dc = function(a) {
			Gt.b.dc[G](this, a);
			var b = this.a();
			b && this.l.dc(b, a)
		};
		N.$c = function(a) {
			this.ee = a;
			var b = this.a();
			b && this.l.$c(b, a)
		};
		N.F = function(a, b) {
			if (b || this.n != a && this[x](a ? Ql : Pj)) {
				var c = this.a();
				c && this.l.F(c, a);
				this[gd]() && this.l.Ab(this, a);
				this.n = a;
				return i
			}
			return l
		};
		N.isEnabled = function() {
			return !this.oa(1)
		};
		N.xa = function(a) {
			this.sc(2, a) && this[wc](2, a)
		};
		N.Da = function() {
			return this.oa(4)
		};
		N.setActive = function(a) {
			this.sc(4, a) && this[wc](4, a)
		};
		N.Wg = function() {
			return this.oa(8)
		};
		N.gf = function(a) {
			this.sc(8, a) && this[wc](8, a)
		};
		N.ke = function() {
			return this.oa(16)
		};
		N.zj = function(a) {
			this.sc(16, a) && this[wc](16, a)
		};
		N.Yg = function() {
			return this.oa(32)
		};
		N.ph = function(a) {
			this.sc(32, a) && this[wc](32, a)
		};
		N.cc = function() {
			return this.oa(64)
		};
		N.H = function(a) {
			this.sc(64, a) && this[wc](64, a)
		};
		N.getState = function() {
			return this.Sa
		};
		N.oa = function(a) {
			return !!(this.Sa & a)
		};
		La(N, function(a, b) {
			if (this.T(a) && b != this.oa(a)) this.l[wc](this, a, b), this.Sa = b ? this.Sa | a : this
				.Sa & ~a
		});
		N.jh = function(a) {
			this.Sa = a
		};
		N.T = function(a) {
			return !!(this.uc & a)
		};
		N.pa = function(a, b) {
			this.r && this.oa(a) && !b && e(n(Tf));
			!b && this.oa(a) && this[wc](a, l);
			this.uc = b ? this.uc | a : this.uc & ~a
		};
		N.ea = function(a) {
			return !!(this.Sd & a) && this.T(a)
		};
		N.nk = function(a, b) {
			this.Sd = b ? this.Sd | a : this.Sd & ~a
		};
		N.gg = function(a, b) {
			this.Ld = b ? this.Ld | a : this.Ld & ~a
		};
		N.sc = function(a, b) {
			return this.T(a) && this.oa(a) != b && (!(this.Ld & a) || this[x](kt(a, b))) && !this.Rc
		};
		N.qe = function(a) {
			(!a[eb] || !Ap(this.a(), a[eb])) && this[x](Bi) && this[gd]() && this.ea(2) && this.xa(i)
		};
		N.pe = function(a) {
			if ((!a[eb] || !Ap(this.a(), a[eb])) && this[x](rk)) this.ea(4) && this[qc](l), this.ea(2) &&
				this.xa(l)
		};
		N.tb = function(a) {
			this[gd]() && (this.ea(2) && this.xa(i), a.ne() && (this.ea(4) && this[qc](i), this.l.sb(
				this) && this.R()[Ob]()));
			!this.ee && a.ne() && a[ub]()
		};
		N.zb = function(a) {
			this[gd]() && (this.ea(2) && this.xa(i), this.Da() && this.Bb(a) && this.ea(4) && this[qc](l))
		};
		N.$f = function(a) {
			this[gd]() && this.Bb(a)
		};
		N.Bb = function(a) {
			this.ea(16) && this.zj(!this.ke());
			this.ea(8) && this.gf(i);
			this.ea(64) && this.H(!this.cc());
			var b = new Yp(mh, this);
			if (a) b.altKey = a[zc], b.ctrlKey = a[Oc], b.metaKey = a[xb], b.shiftKey = a[Bd], b.Ze = a.Ze;
			return this[x](b)
		};
		N.Xc = function() {
			this.ea(32) && this.ph(i)
		};
		N.yb = function() {
			this.ea(4) && this[qc](l);
			this.ea(32) && this.ph(l)
		};
		N.wa = function(a) {
			return this.n && this[gd]() && this.Ba(a) ? (a[ub](), a[Sc](), i) : l
		};
		N.Ba = function(a) {
			return 13 == a[Tb] && this.Bb(a)
		};
		bn(Gt) || e(n("Invalid component class " + Gt));
		bn(Ct) || e(n("Invalid renderer class " + Ct));
		var Ht = cn(Gt);
		Ft[Ht] = Ct;
		Et(nj, function() {
			return new Gt(k)
		});

		function It() {
			this.wh = []
		}
		S(It, Ct);
		Um(It);
		N = It[D];
		N.fd = function(a) {
			var b = this.wh[a];
			if (!b) {
				switch (a) {
					case 0:
						b = this.oc() + He;
						break;
					case 1:
						b = this.oc() + Ae;
						break;
					case 2:
						b = this.oc() + Ce
				}
				this.wh[a] = b
			}
			return b
		};
		N.nb = function() {
			return Bk
		};
		N.d = function(a) {
			var b = a.t().d(ti, this.hc(a)[Ld](Sd), this.zi(a.na, a.t()));
			this.Ai(a, b, a.T(8) || a.T(16));
			return b
		};
		N.S = function(a) {
			return a && a[Vb]
		};
		Fa(N, function(a, b) {
			var c = this.S(a),
				d = this.re(a) ? c[Vb] : k;
			It.b[mc][G](this, a, b);
			d && !this.re(a) && c[vb](d, c[Vb] || k)
		});
		N.zi = function(a, b) {
			var c = this.fd(2);
			return b.d(ti, c, a)
		};
		N.re = function(a) {
			if (a = this.S(a)) {
				var a = a[Vb],
					b = this.fd(1);
				return !!a && !!a.className && -1 != a.className[v](b)
			}
			return l
		};
		N.Ai = function(a, b, c) {
			if (c != this.re(b))
				if (c ? gp(b, yj) : hp(b, yj), b = this.S(b), c) c = this.fd(1), b[vb](a.t().d(ti, c), b[
					Vb] || k);
				else b[bd](b[Vb])
		};
		N.kd = function(a) {
			switch (a) {
				case 2:
					return this.fd(0);
				case 16:
				case 8:
					return zj;
				default:
					return It.b.kd[G](this, a)
			}
		};
		N.A = function() {
			return tj
		};

		function Jt(a, b, c, d) {
			Gt[G](this, a, d || It.qa(), c);
			this[Ic](b)
		}
		S(Jt, Gt);
		N = Jt[D];
		Ga(N, function() {
			var a = this.je;
			return a != k ? a : this.wc()
		});
		Na(N, function(a) {
			this.fl(a)
		});
		N.wc = function() {
			var a = this.na;
			return Q(a) ? (a = fo(a, function(a) {
				var c = fp(a);
				return ho(c, uj) || ho(c, vj) ? J : Hp(a)
			})[Ld](J), Bn(a)) : Jt.b.wc[G](this)
		};
		N.zb = function(a) {
			var b = this[ab]();
			if (b) {
				var c = b.eg;
				b.eg = k;
				if (b = c && an(a[sc])) b = new Ln(a[sc], a[tc]), b = c == b ? i : !c || !b ? l : c.x == b
					.x && c.y == b.y;
				if (b) return
			}
			Jt.b.zb[G](this, a)
		};
		N.Ba = function(a) {
			return a[Tb] == this.jg && this.Bb(a) ? i : Jt.b.Ba[G](this, a)
		};
		N.Hi = function() {
			return this.jg
		};
		Et(tj, function() {
			return new Jt(k)
		});

		function Kt(a, b, c, d, f, h, j, o) {
			var r, w = c.offsetParent;
			if (w) {
				var C = w[Cd] == hg || w[Cd] == Kf;
				if (!C || Lr(w) != Yl) r = Rr(w), C || (r = Mn(r, new Ln(w[qd], w[xc])))
			}
			w = Wr(a);
			(C = Qr(a)) && w.Ng(new Ir(C[y], C.top, C[Pd] - C[y], C[ud] - C.top));
			var C = ip(a),
				L = ip(c);
			if (C.o != L.o) {
				var ta = C.o[ad],
					L = L.ed(),
					ia = new Ln(0, 0),
					db = qp(kp(ta)),
					Da = ta;
				do {
					var Ja;
					if (db == L) Ja = Rr(Da);
					else {
						var ma = Da;
						Ja = new Ln;
						if (1 == ma[ib])
							if (ma[$a]) ma = Or(ma), Ja.x = ma[y], Ja.y = ma.top;
							else {
								var ra = ip(ma).ac(),
									ma = Rr(ma);
								Ja.x = ma.x - ra.x;
								Ja.y = ma.y - ra.y
							}
						else {
							var ra = bn(ma.sj),
								Aa =
								ma;
							ma[wb] ? Aa = ma[wb][0] : ra && ma.Y[wb] && (Aa = ma.Y[wb][0]);
							Ja.x = Aa[sc];
							Ja.y = Aa[tc]
						}
					}
					ia.x += Ja.x;
					ia.y += Ja.y
				} while (db && db != L && (Da = db.frameElement) && (db = db.parent));
				ta = Mn(ia, Rr(ta));
				T && !C.ff() && (ta = Mn(ta, C.ac()));
				ua(w, w[y] + ta.x);
				w.top += ta.y
			}
			a = (b & 4 && Sr(a) ? b ^ 2 : b) & -5;
			b = new Ln(a & 2 ? w[y] + w[t] : w[y], a & 1 ? w.top + w[I] : w.top);
			r && (b = Mn(b, r));
			f && (b.x += (a & 2 ? -1 : 1) * f.x, b.y += (a & 1 ? -1 : 1) * f.y);
			var H;
			if (j && (H = Qr(c)) && r) H.top -= r.y, Xa(H, H[Pd] - r.x), Ta(H, H[ud] - r.y), ua(H, H[y] - r.x);
			a: {
				r = b[cd]();f = 0;a = (d & 4 && Sr(c) ? d ^ 2 : d) & -5;d = Ur(c);o = o ?
				o[cd]() : d[cd]();
				if (h || 0 != a) a & 2 ? r.x -= o[t] + (h ? h[Pd] : 0) : h && (r.x += h[y]),
				a & 1 ? r.y -= o[I] + (h ? h[ud] : 0) : h && (r.y += h.top);
				if (j) {
					if (H) {
						h = r;
						f = 0;
						if (65 == (j & 65) && (h.x < H[y] || h.x >= H[Pd])) j &= -2;
						if (132 == (j & 132) && (h.y < H.top || h.y >= H[ud])) j &= -5;
						if (h.x < H[y] && j & 1) h.x = H[y], f |= 1;
						h.x < H[y] && h.x + o[t] > H[Pd] && j & 16 && (pa(o, q.max(o[t] - (h.x + o[t] - H[
							Pd]), 0)), f |= 4);
						if (h.x + o[t] > H[Pd] && j & 1) h.x = q.max(H[Pd] - o[t], H[y]), f |= 1;
						j & 2 && (f |= (h.x < H[y] ? 16 : 0) | (h.x + o[t] > H[Pd] ? 32 : 0));
						if (h.y < H.top && j & 4) h.y = H.top, f |= 2;
						h.y >= H.top && h.y + o[I] > H[ud] && j & 32 && (Wa(o,
							q.max(o[I] - (h.y + o[I] - H[ud]), 0)), f |= 8);
						if (h.y + o[I] > H[ud] && j & 4) h.y = q.max(H[ud] - o[I], H.top), f |= 2;
						j & 8 && (f |= (h.y < H.top ? 64 : 0) | (h.y + o[I] > H[ud] ? 128 : 0));
						j = f
					} else j = 256;
					f = j;
					if (f & 496) {
						c = f;
						break a
					}
				}
				Mr(c, r);
				if (!(d == o || (!d || !o ? 0 : d[t] == o[t] && d[I] == o[I]))) h = ip(kp(c)).ff(),
				T && (!h || !$o(tf)) ? (j = c[F], h ? (T ? (h = bs(c, gl), d = bs(c, hl), r = bs(c, il), H =
						bs(c, fl), h = new Hr(r, d, H, h)) : (h = Jr(c, gl), d = Jr(c, hl), r = Jr(c,
						il), H = Jr(c, fl), h = new Hr(ga(r), ga(d), ga(H), ga(h))), T ? (d = ds(c, Hh),
						r = ds(c, Jh), H = ds(c, Lh), c = ds(c, Fh), c = new Hr(H, r, c, d)) : (d = Jr(
						c,
						Ih), r = Jr(c, Kh), H = Jr(c, Mh), c = Jr(c, Gh), c = new Hr(ga(H), ga(r),
						ga(c), ga(d))), j.pixelWidth = o[t] - c[y] - h[y] - h[Pd] - c[Pd], j
					.pixelHeight = o[I] - c.top - h.top - h[ud] - c[ud]) : (j.pixelWidth = o[t], j
					.pixelHeight = o[I])) : (c = c[F], Lo ? c.MozBoxSizing = Dh : Mo ? c.WebkitBoxSizing =
					Dh : c.boxSizing = Dh, pa(c, q.max(o[t], 0) + pl), Wa(c, q.max(o[I], 0) + pl));c = f
			}
			return c
		};

		function Lt() {}
		Lt[D].vc = function() {};

		function Mt(a, b) {
			this.element = a;
			this.bd = b
		}
		S(Mt, Lt);
		Mt[D].vc = function(a, b, c) {
			Kt(this[Ed], this.bd, a, b, g, c)
		};

		function Nt(a, b, c) {
			Mt[G](this, a, b);
			this.qk = c
		}
		S(Nt, Mt);
		Nt[D].qh = function() {
			return 5
		};
		Nt[D].vc = function(a, b, c, d) {
			var f = Kt(this[Ed], this.bd, a, b, k, c, 10, d);
			if (f & 496) {
				var h = this.Ud(f, this.bd),
					b = this.Ud(f, b),
					f = Kt(this[Ed], h, a, b, k, c, 10, d);
				f & 496 && (h = this.Ud(f, h), b = this.Ud(f, b), this.qk ? Kt(this[Ed], h, a, b, k, c, this
					.qh(), d) : Kt(this[Ed], h, a, b, k, c, 0, d))
			}
		};
		Nt[D].Ud = function(a, b) {
			a & 48 && (b ^= 2);
			a & 192 && (b ^= 1);
			return b
		};

		function Ot(a, b, c, d) {
			Nt[G](this, a, b, c || d);
			this.bl = d
		}
		S(Ot, Nt);
		Ot[D].qh = function() {
			return 65 | (this.bl ? 32 : 132)
		};
		var Pt, Qt;
		Qt = Pt = l;
		var Rt = Go();
		Rt && (-1 != Rt[v]("Firefox") || -1 != Rt[v]("Camino") || (-1 != Rt[v]("iPhone") || -1 != Rt[v](
			"iPod") ? Pt = i : -1 != Rt[v]("iPad") ? Qt = i : -1 != Rt[v]("Android") || -1 != Rt[v](
				"Chrome") || Rt[v]("Safari")));
		var St = Pt,
			Tt = Qt;

		function Ut() {}
		S(Ut, Ct);
		Um(Ut);
		N = Ut[D];
		N.nb = function() {
			return Oh
		};
		N.da = function(a, b, c) {
			16 == b ? Zs(a, nl, c) : Ut.b.da[G](this, a, b, c)
		};
		N.d = function(a) {
			var b = Ut.b.d[G](this, a),
				c = a.ad();
			c && this.fe(b, c);
			(c = a[A]()) && this[Ic](b, c);
			a.T(16) && this.da(b, 16, a.ke());
			return b
		};
		Ga(N, Tm);
		Na(N, Tm);
		N.ad = function(a) {
			return a.title
		};
		N.fe = function(a, b) {
			if (a) a.title = b || J
		};
		N.A = function() {
			return lj
		};

		function Vt() {}
		S(Vt, Ut);
		Um(Vt);
		N = Vt[D];
		N.nb = function() {};
		N.d = function(a) {
			this.Li(a);
			return a.t().d(Oh, {
				"class": this.hc(a)[Ld](Sd),
				disabled: !a[gd](),
				title: a.ad() || J,
				value: a[A]() || J
			}, a.wc() || J)
		};
		N.Wb = function(a) {
			a.P().i(a.a(), Xh, a.Bb)
		};
		N.$c = Tm;
		N.dc = Tm;
		N.sb = function(a) {
			return a[gd]()
		};
		N.Ab = Tm;
		La(N, function(a, b, c) {
			Vt.b[wc][G](this, a, b, c);
			if ((a = a.a()) && 1 == b) a.disabled = c
		});
		Ga(N, function(a) {
			return a[sb]
		});
		Na(N, function(a, b) {
			if (a) a.value = b
		});
		N.da = Tm;
		N.Li = function(a) {
			a.ie(l);
			a.nk(255, l);
			a.pa(32, l)
		};

		function Wt(a, b, c) {
			Gt[G](this, a, b || Vt.qa(), c)
		}
		S(Wt, Gt);
		N = Wt[D];
		Ga(N, function() {
			return this.Wf
		});
		Na(N, function(a) {
			this.Wf = a;
			this.l[Ic](this.a(), a)
		});
		N.ad = function() {
			return this.Vf
		};
		N.fe = function(a) {
			this.Vf = a;
			this.l.fe(this.a(), a)
		};
		N.k = function() {
			Wt.b.k[G](this);
			delete this.Wf;
			delete this.Vf
		};
		N.K = function() {
			Wt.b.K[G](this);
			if (this.T(32)) {
				var a = this.R();
				a && this.P().i(a, pk, this.Ba)
			}
		};
		N.Ba = function(a) {
			return 13 == a[Tb] && a[z] == lk || 32 == a[Tb] && a[z] == pk ? this.Bb(a) : 32 == a[Tb]
		};
		Et(lj, function() {
			return new Wt(k)
		});

		function Xt() {}
		S(Xt, Ct);
		Um(Xt);
		Xt[D].d = function(a) {
			return a.t().d(ti, this.A())
		};
		Fa(Xt[D], function() {});
		Xt[D].A = function() {
			return wj
		};

		function Yt(a, b) {
			Gt[G](this, k, a || Xt.qa(), b);
			this.pa(1, l);
			this.pa(2, l);
			this.pa(4, l);
			this.pa(32, l);
			this.jh(1)
		}
		S(Yt, Gt);
		Yt[D].K = function() {
			Yt.b.K[G](this);
			Ys(this.a(), Il)
		};
		Et(wj, function() {
			return new Yt
		});

		function Zt() {}
		Um(Zt);
		N = Zt[D];
		N.nb = function() {};
		N.Yf = function(a, b) {
			if (a) a.tabIndex = b ? 0 : -1
		};
		N.d = function(a) {
			return a.t().d(ti, this.hc(a)[Ld](Sd))
		};
		N.S = function(a) {
			return a
		};
		N.Wb = function(a) {
			a = a.a();
			$r(a, i, Lo);
			if (T) a.hideFocus = i;
			var b = this.nb();
			b && Ys(a, b)
		};
		N.R = function(a) {
			return a.a()
		};
		N.A = function() {
			return mj
		};
		N.hc = function(a) {
			var b = this.A(),
				c = [b, a.gc == Rj ? b + Ie : b + Ue];
			a[gd]() || c[s](b + Ee);
			return c
		};

		function $t(a, b, c) {
			it[G](this, c);
			this.l = b || Zt.qa();
			this.gc = a || Cm
		}
		S($t, it);
		N = $t[D];
		N.he = k;
		N.ia = k;
		N.l = k;
		N.gc = k;
		N.n = i;
		N.vb = i;
		N.Fe = i;
		N.ha = -1;
		N.L = k;
		N.ge = l;
		N.mi = l;
		N.ki = i;
		N.Oa = k;
		N.R = function() {
			return this.he || this.l.R(this)
		};
		N.Wc = function() {
			return this.ia || (this.ia = new wt(this.R()))
		};
		N.d = function() {
			this.dg(this.l.d(this))
		};
		N.S = function() {
			return this.l.S(this.a())
		};
		N.K = function() {
			$t.b.K[G](this);
			this.rb(function(a) {
				a.r && this.Kf(a)
			}, this);
			var a = this.a();
			this.l.Wb(this);
			this.F(this.n, i);
			this.P().i(this, Bi, this.Xd).i(this, Qj, this.Yd).i(this, vm, this.Zd).i(this, Xk, this.Ph).i(
				this, Yh, this.Nh).i(a, Gk, this.tb).i(kp(a), Kk, this.Oh).i(a, [Gk, Kk, Jk, Ik], this
				.Mh);
			this.sb() && this.Lf(i)
		};
		N.Lf = function(a) {
			var b = this.P(),
				c = this.R();
			a ? b.i(c, Hi, this.Xc).i(c, Ah, this.yb).i(this.Wc(), lk, this.wa) : b.X(c, Hi, this.Xc).X(c,
				Ah, this.yb).X(this.Wc(), lk, this.wa)
		};
		N.ba = function() {
			this.Yb(-1);
			this.L && this.L.H(l);
			this.ge = l;
			$t.b.ba[G](this)
		};
		N.k = function() {
			$t.b.k[G](this);
			if (this.ia) this.ia.Q(), this.ia = k;
			this.l = this.L = this.Oa = this.he = k
		};
		N.Xd = function() {
			return i
		};
		N.Yd = function(a) {
			var b = this.Vc(a[ed]);
			if (-1 < b && b != this.ha) {
				var c = this.$b();
				c && c.xa(l);
				this.ha = b;
				c = this.$b();
				this.ge && c[qc](i);
				this.ki && this.L && c != this.L && (c.T(64) ? c.H(i) : this.L.H(l))
			}
			Zs(this.a(), oh, a[ed].a().id)
		};
		N.Zd = function(a) {
			if (a[ed] == this.$b()) this.ha = -1;
			Zs(this.a(), oh, J)
		};
		N.Ph = function(a) {
			if ((a = a[ed]) && a != this.L && a[ab]() == this) this.L && this.L.H(l), this.L = a
		};
		N.Nh = function(a) {
			if (a[ed] == this.L) this.L = k
		};
		N.tb = function(a) {
			this.vb && this.Xb(i);
			var b = this.R();
			b && Fp(b) ? b[Ob]() : a[ub]()
		};
		N.Oh = function() {
			this.Xb(l)
		};
		N.Mh = function(a) {
			var b = this.bk(a[ed]);
			if (b) switch (a[z]) {
				case Gk:
					b.tb(a);
					break;
				case Kk:
					b.zb(a);
					break;
				case Jk:
					b.qe(a);
					break;
				case Ik:
					b.pe(a)
			}
		};
		N.bk = function(a) {
			if (this.Oa)
				for (var b = this.a(); a && a !== b;) {
					var c = a.id;
					if (c in this.Oa) return this.Oa[c];
					a = a[Hd]
				}
			return k
		};
		N.Xc = function() {};
		N.yb = function() {
			this.Yb(-1);
			this.Xb(l);
			this.L && this.L.H(l)
		};
		N.wa = function(a) {
			return this[gd]() && this.n && (0 != this.ab() || this.he) && this.Ba(a) ? (a[ub](), a[Sc](),
				i) : l
		};
		N.Ba = function(a) {
			var b = this.$b();
			if (b && typeof b.wa == Mi && b.wa(a)) return i;
			if (this.L && this.L != b && typeof this.L.wa == Mi && this.L.wa(a)) return i;
			if (a[Bd] || a[Oc] || a[xb] || a[zc]) return l;
			switch (a[Tb]) {
				case 27:
					if (this.sb()) this.R().blur();
					else return l;
					break;
				case 36:
					this.Xi();
					break;
				case 35:
					this.Yi();
					break;
				case 38:
					if (this.gc == Cm) this.Se();
					else return l;
					break;
				case 37:
					if (this.gc == Rj) this.le() ? this.Re() : this.Se();
					else return l;
					break;
				case 40:
					if (this.gc == Cm) this.Re();
					else return l;
					break;
				case 39:
					if (this.gc == Rj) this.le() ?
						this.Se() : this.Re();
					else return l;
					break;
				default:
					return l
			}
			return i
		};
		N.Kf = function(a) {
			var b = a.a(),
				b = b.id || (b.id = a.Vb());
			if (!this.Oa) this.Oa = {};
			this.Oa[b] = a
		};
		N.Dd = function(a, b) {
			$t.b.Dd[G](this, a, b)
		};
		N.Cc = function(a, b, c) {
			a.gg(2, i);
			a.gg(64, i);
			(this.sb() || !this.mi) && a.pa(32, l);
			a.ie(l);
			$t.b.Cc[G](this, a, b, c);
			a.r && this.r && this.Kf(a);
			b <= this.ha && this.ha++
		};
		N.removeChild = function(a, b) {
			if (a = R(a) ? this.ce(a) : a) {
				var c = this.Vc(a); - 1 != c && (c == this.ha ? a.xa(l) : c < this.ha && this.ha--);
				(c = a.a()) && c.id && this.Oa && vo(this.Oa, c.id)
			}
			a = $t.b[bd][G](this, a, b);
			a.ie(i);
			return a
		};
		N.F = function(a, b) {
			if (b || this.n != a && this[x](a ? Ql : Pj)) {
				this.n = a;
				var c = this.a();
				c && (Yr(c, a), this.sb() && this.l.Yf(this.R(), this.vb && this.n), b || this[x](this.n ?
					qh : ph));
				return i
			}
			return l
		};
		N.isEnabled = function() {
			return this.vb
		};
		N.sb = function() {
			return this.Fe
		};
		N.Ab = function(a) {
			a != this.Fe && this.r && this.Lf(a);
			this.Fe = a;
			this.vb && this.n && this.l.Yf(this.R(), a)
		};
		N.Yb = function(a) {
			(a = this.bb(a)) ? a.xa(i): -1 < this.ha && this.$b().xa(l)
		};
		N.xa = function(a) {
			this.Yb(this.Vc(a))
		};
		N.$b = function() {
			return this.bb(this.ha)
		};
		N.Xi = function() {
			this.Pd(function(a, b) {
				return (a + 1) % b
			}, this.ab() - 1)
		};
		N.Yi = function() {
			this.Pd(function(a, b) {
				a--;
				return 0 > a ? b - 1 : a
			}, 0)
		};
		N.Re = function() {
			this.Pd(function(a, b) {
				return (a + 1) % b
			}, this.ha)
		};
		N.Se = function() {
			this.Pd(function(a, b) {
				a--;
				return 0 > a ? b - 1 : a
			}, this.ha)
		};
		N.Pd = function(a, b) {
			for (var c = 0 > b ? this.Vc(this.L) : b, d = this.ab(), c = a[G](this, c, d), f = 0; f <= d;) {
				var h = this.bb(c);
				if (h && this.Vg(h)) return this.Dj(c), i;
				f++;
				c = a[G](this, c, d)
			}
			return l
		};
		N.Vg = function(a) {
			return a.n && a[gd]() && a.T(2)
		};
		N.Dj = function(a) {
			this.Yb(a)
		};
		N.Xb = function(a) {
			this.ge = a
		};

		function au() {}
		S(au, Ct);
		Um(au);
		au[D].A = function() {
			return sj
		};

		function bu(a, b, c) {
			Gt[G](this, a, c || au.qa(), b);
			this.pa(1, l);
			this.pa(2, l);
			this.pa(4, l);
			this.pa(32, l);
			this.jh(1)
		}
		S(bu, Gt);
		Et(sj, function() {
			return new bu(k)
		});

		function cu() {}
		S(cu, Zt);
		Um(cu);
		cu[D].nb = function() {
			return Ak
		};
		cu[D].Cb = function(a, b) {
			return Ap(a.a(), b)
		};
		cu[D].A = function() {
			return qj
		};
		cu[D].Wb = function(a) {
			cu.b.Wb[G](this, a);
			Zs(a.a(), Lj, sm)
		};
		Et(wj, function() {
			return new Yt
		});

		function du(a, b) {
			$t[G](this, Cm, b || cu.qa(), a);
			this.Ab(l)
		}
		S(du, $t);
		N = du[D];
		N.we = i;
		N.Ej = l;
		N.A = function() {
			return this.l.A()
		};
		N.Cb = function(a) {
			if (this.l.Cb(this, a)) return i;
			for (var b = 0, c = this.ab(); b < c; b++) {
				var d = this.bb(b);
				if (typeof d.Cb == Mi && d.Cb(a)) return i
			}
			return l
		};
		N.gb = function(a) {
			this.Dd(a, i)
		};
		N.mc = function(a, b) {
			this.Cc(a, b, i)
		};
		N.Mc = function(a) {
			return this.bb(a)
		};
		N.Df = function() {
			return this.ab()
		};
		N.qc = function(a, b) {
			var c = this.n;
			c || Yr(this.a(), i);
			var d = this.a(),
				f = a,
				h = b,
				j = Rr(d);
			if (f instanceof Ln) h = f.y, f = f.x;
			Mr(d, d.offsetLeft + (f - j.x), d[Jd] + (h - j.y));
			c || Yr(this.a(), l)
		};
		N.si = function(a) {
			(this.we = a) && this.Ab(i)
		};
		N.F = function(a, b, c) {
			(b = du.b.F[G](this, a, b)) && a && this.r && this.we && this.R()[Ob]();
			this.eg = a && c && an(c[sc]) ? new Ln(c[sc], c[tc]) : k;
			return b
		};
		N.Xd = function(a) {
			this.we && this.R()[Ob]();
			return du.b.Xd[G](this, a)
		};
		N.Vg = function(a) {
			return (this.Ej || a[gd]()) && a.n && a.T(2)
		};
		N.Ba = function(a) {
			var b = du.b.Ba[G](this, a);
			b || this.rb(function(c) {
				!b && c.Hi && c.jg == a[Tb] && (this[gd]() && this.xa(c), b = c.wa(a))
			}, this);
			return b
		};

		function eu() {}
		S(eu, Ut);
		Um(eu);
		N = eu[D];
		N.d = function(a) {
			var b = {
					"class": pj + this.hc(a)[Ld](Sd),
					title: a.ad() || J
				},
				b = a.t().d(ti, b, this.createButton(a.na, a.t()));
			this.Je(a, b);
			return b
		};
		N.nb = function() {
			return Oh
		};
		N.Je = function(a, b) {
			a[gd]() || this.da(b, 1, i);
			a.Wg() && this.da(b, 8, i);
			a.T(16) && this.da(b, 16, i);
			a.cc() && this.da(b, 64, i)
		};
		N.S = function(a) {
			return a && a[Vb][Vb]
		};
		N.createButton = function(a, b) {
			return b.d(ti, pj + (this.A() + Me), b.d(ti, pj + (this.A() + Ke), a))
		};
		N.A = function() {
			return oj
		};

		function fu() {}
		S(fu, eu);
		Um(fu);
		Lo && Fa(fu[D], function(a, b) {
			var c = fu.b.S[G](this, a && a[Vb]);
			if (c) {
				var d = this.createCaption(b, ip(a)),
					f = c[Hd];
				f && f.replaceChild(d, c)
			}
		});
		N = fu[D];
		N.S = function(a) {
			a = fu.b.S[G](this, a && a[Vb]);
			Lo && a && a.__goog_wrapper_div && (a = a[Vb]);
			return a
		};
		N.createButton = function(a, b) {
			return fu.b.createButton[G](this, [this.createCaption(a, b), this.nj(b)], b)
		};
		N.createCaption = function(a, b) {
			return b.d(ti, pj + (this.A() + ze), a)
		};
		N.nj = function(a) {
			return a.d(ti, pj + (this.A() + Fe), Om)
		};
		N.A = function() {
			return rj
		};

		function gu(a, b, c, d) {
			Wt[G](this, a, c || fu.qa(), d);
			this.pa(64, i);
			b && this.Zc(b);
			this.Zh = k;
			this.ga = new tq(500);
			(St || Tt) && !$o(rf) && this.Gj(i)
		}
		S(gu, Wt);
		N = gu[D];
		N.gi = i;
		N.me = l;
		N.Tc = l;
		N.Sh = l;
		N.K = function() {
			gu.b.K[G](this);
			this.g && this.Uc(this.g, i);
			Zs(this.a(), Lj, sm)
		};
		N.ba = function() {
			gu.b.ba[G](this);
			if (this.g) {
				this.H(l);
				this.g.ba();
				this.Uc(this.g, l);
				var a = this.g.a();
				a && zp(a)
			}
		};
		N.k = function() {
			gu.b.k[G](this);
			this.g && (this.g.Q(), delete this.g);
			delete this.Qh;
			this.ga.Q()
		};
		N.tb = function(a) {
			gu.b.tb[G](this, a);
			this.Da() && (this.H(!this.cc(), a), this.g && this.g.Xb(this.cc()))
		};
		N.zb = function(a) {
			gu.b.zb[G](this, a);
			this.g && !this.Da() && this.g.Xb(l)
		};
		N.Bb = function() {
			this[qc](l);
			return i
		};
		N.hi = function(a) {
			this.g && this.g.n && !this.Cb(a[ed]) && this.H(l)
		};
		N.Cb = function(a) {
			return a && Ap(this.a(), a) || this.g && this.g.Cb(a) || l
		};
		N.Ba = function(a) {
			if (32 == a[Tb]) {
				if (a[ub](), a[z] != pk) return l
			} else if (a[z] != lk) return l;
			if (this.g && this.g.n) {
				var b = this.g.wa(a);
				return 27 == a[Tb] ? (this.H(l), i) : b
			}
			return 40 == a[Tb] || 38 == a[Tb] || 32 == a[Tb] ? (this.H(i), i) : l
		};
		N.ve = function() {
			this.H(l)
		};
		N.ii = function() {
			this.Da() || this.H(l)
		};
		N.yb = function(a) {
			this.Tc || this.H(l);
			gu.b.yb[G](this, a)
		};
		N.Ac = function() {
			this.g || this.Zc(new du(this.t()));
			return this.g || k
		};
		N.Zc = function(a) {
			var b = this.g;
			if (a != b && (b && (this.H(l), this.r && this.Uc(b, l), delete this.g), a)) this.g = a, a.$d(
				this), a.F(l), a.si(this.Tc), this.r && this.Uc(a, i);
			return b
		};
		N.gb = function(a) {
			this.Ac().Dd(a, i)
		};
		N.mc = function(a, b) {
			this.Ac().Cc(a, b, i)
		};
		N.Mc = function(a) {
			return this.g ? this.g.bb(a) : k
		};
		N.Df = function() {
			return this.g ? this.g.ab() : 0
		};
		N.F = function(a, b) {
			var c = gu.b.F[G](this, a, b);
			c && !this.n && this.H(l);
			return c
		};
		N.Gj = function(a) {
			this.Tc = a
		};
		N.H = function(a, b) {
			gu.b.H[G](this, a);
			if (this.g && this.oa(64) == a) {
				if (a) this.g.r || (this.Sh ? this.g.ub(this.a()[Hd]) : this.g.ub()), this.xb = Qr(this
				.a()), this.wb = Wr(this.a()), this.Of(), this.g.Yb(-1);
				else if (this[qc](l), this.g.Xb(l), this.a() && Zs(this.a(), oh, J), P(this.Qc)) {
					this.Qc = g;
					var c = this.g.a();
					c && Tr(c, J, J)
				}
				this.g.F(a, l, b);
				this.Rc || this.Rh(a)
			}
		};
		N.Of = function() {
			if (this.g.r) {
				var a = this.Qh || this.a(),
					b = this.il;
				b || (b = new Ot(a, this.gi ? 5 : 7, !this.me, this.me));
				a = this.g.a();
				this.g.n || (Ka(a[F], Oj), Yr(a, i));
				if (!this.Qc && this.me) this.Qc = Ur(a);
				b.vc(a, b.bd ^ 1, this.Zh, this.Qc);
				this.g.n || (Yr(a, l), Ka(a[F], Dm))
			}
		};
		N.ji = function() {
			var a = Wr(this.a()),
				b = Qr(this.a());
			if (!(this.wb == a || (!this.wb || !a ? 0 : this.wb[y] == a[y] && this.wb[t] == a[t] && this.wb
					.top == a.top && this.wb[I] == a[I])) || !(this.xb == b || (!this.xb || !b ? 0 : this.xb
						.top == b.top && this.xb[Pd] == b[Pd] && this.xb[ud] == b[ud] && this.xb[y] == b[y]
						))) this.wb = a, this.xb = b, this.Of()
		};
		N.Uc = function(a, b) {
			var c = this.P(),
				d = b ? c.i : c.X;
			d[G](c, a, mh, this.ve);
			d[G](c, a, Qj, this.Yd);
			d[G](c, a, vm, this.Zd)
		};
		N.Yd = function(a) {
			Zs(this.a(), oh, a[ed].a().id)
		};
		N.Zd = function() {
			this.g.$b() || Zs(this.a(), oh, J)
		};
		N.Rh = function(a) {
			var b = this.P(),
				c = a ? b.i : b.X;
			c[G](b, this.t().o, Gk, this.hi, i);
			this.Tc && c[G](b, this.g, Ah, this.ii);
			c[G](b, this.ga, hm, this.ji);
			a ? this.ga.start() : this.ga.stop()
		};
		Et(rj, function() {
			return new gu(k)
		});

		function hu(a) {
			this.Lb = [];
			this.yk(a)
		}
		S(hu, sq);
		N = hu[D];
		N.Mb = k;
		N.Bh = k;
		N.Df = function() {
			return this.Lb[B]
		};
		N.Bk = function(a) {
			return a ? bo(this.Lb, a) : -1
		};
		N.Mc = function(a) {
			return this.Lb[a] || k
		};
		N.yk = function(a) {
			a && (co(a, function(a) {
				this.Rd(a, l)
			}, this), lo(this.Lb, a))
		};
		N.gb = function(a) {
			this.mc(a, this.Df())
		};
		N.mc = function(a, b) {
			a && (this.Rd(a, l), mo(this.Lb, b, 0, a))
		};
		N.wd = function() {
			return this.Mb
		};
		N.Qb = function(a) {
			if (a != this.Mb) this.Rd(this.Mb, l), this.Mb = a, this.Rd(a, i);
			this[x](Gl)
		};
		N.qd = function() {
			return this.Bk(this.Mb)
		};
		N.xh = function(a) {
			this.Qb(this.Mc(a))
		};
		Ea(N, function() {
			var a = this.Lb;
			if (!Q(a))
				for (var b = a[B] - 1; 0 <= b; b--) delete a[b];
			Ma(a, 0);
			this.Mb = k
		});
		N.k = function() {
			hu.b.k[G](this);
			delete this.Lb;
			this.Mb = k
		};
		N.Rd = function(a, b) {
			a && (typeof this.Bh == Mi ? this.Bh(a, b) : typeof a.gf == Mi && a.gf(b))
		};

		function iu(a, b, c, d) {
			gu[G](this, a, b, c, d);
			this.Lk(a);
			this.Hh(uk)
		}
		S(iu, gu);
		N = iu[D];
		N.w = k;
		N.te = k;
		N.K = function() {
			iu.b.K[G](this);
			this.oe();
			this.Uf();
			Zs(this.a(), Lj, Ei)
		};
		N.k = function() {
			iu.b.k[G](this);
			if (this.w) this.w.Q(), this.w = k;
			this.te = k
		};
		N.ve = function(a) {
			this.Qb(a[ed]);
			iu.b.ve[G](this, a);
			a[Sc]();
			this[x](mh)
		};
		N.lj = function() {
			var a = this.wd();
			iu.b[Ic][G](this, a && a[A]());
			this.oe()
		};
		N.Zc = function(a) {
			var b = iu.b.Zc[G](this, a);
			a != b && (this.w && this.w.clear(), a && (this.w ? a.rb(function(a) {
				this.rd(a);
				this.w.gb(a)
			}, this) : this.ze(a)));
			return b
		};
		N.Lk = function(a) {
			this.te = a;
			this.oe()
		};
		N.gb = function(a) {
			this.rd(a);
			iu.b.gb[G](this, a);
			this.w ? this.w.gb(a) : this.ze(this.Ac())
		};
		N.mc = function(a, b) {
			this.rd(a);
			iu.b.mc[G](this, a, b);
			this.w ? this.w.mc(a, b) : this.ze(this.Ac())
		};
		N.Qb = function(a) {
			this.w && this.w.Qb(a)
		};
		N.xh = function(a) {
			this.w && this.Qb(this.w.Mc(a))
		};
		Na(N, function(a) {
			if (P(a) && this.w)
				for (var b = 0, c; c = this.w.Mc(b); b++)
					if (c && typeof c[A] == Mi && c[A]() == a) {
						this.Qb(c);
						return
					} this.Qb(k)
		});
		N.wd = function() {
			return this.w ? this.w.wd() : k
		};
		N.qd = function() {
			return this.w ? this.w.qd() : -1
		};
		N.ze = function(a) {
			this.w = new hu;
			a && a.rb(function(a) {
				this.rd(a);
				this.w.gb(a)
			}, this);
			this.Uf()
		};
		N.Uf = function() {
			this.w && this.P().i(this.w, Gl, this.lj)
		};
		N.oe = function() {
			var a = this.wd();
			this[mc](a ? a.wc() : this.te)
		};
		N.rd = function(a) {
			a.Hh(a instanceof Jt ? Yk : Il)
		};
		N.H = function(a, b) {
			iu.b.H[G](this, a, b);
			this.cc() && this.Ac().Yb(this.qd())
		};
		Et("goog-select", function() {
			return new iu(k)
		});

		function ju(a, b) {
			this.fb = ip();
			this.ec = a;
			this.bh = [];
			a: {
				for (var c = es() + ef, d = ja[rc](sg), f = 0; f < d[B]; f++)
					if (d[f] && d[f][wd] && d[f][wd] == c) break a;d = ja[Pb](tk);d.href = c;d.rel = am;Ca(
					d, em);
				if (0 == ja[rc](Mj)[B]) {
					var c = ja[rc](Sj)[0],
						f = ja[rc](Bh)[0],
						h = ja[Pb](Mj);
					c[vb](h, f)
				}
				ja[rc](Mj)[0][Ya](d)
			}
			this.fk(b)
		}
		N = ju[D];
		N.lc = k;

		function ku(a, b) {
			var c = ip(),
				d, f, h = k;
			switch (a) {
				case 2:
					d = new mt(Fj);
					h = rl + d.Vb();
					f = c.d(ti, k, c.d(ti, {
						"class": Ej
					}, Vf), c.d(Nh, k), c.d(ml, k, c.d(ti, {
						id: h
					}, b[Xc])));
					break;
				case 3:
					d = new mt(Aj);
					f = c.d(ti, k, c.d(ti, {
						"class": Ej
					}, Vf), c.d(Nh, k));
					var j = c.d(ti, k, c.d(ml, k, b[Xc]));
					c[Ya](f, j)
			}
			d[mc](f.innerHTML);
			qa(d.$i(), eg);
			qa(d.Zi(), J);
			d.F(i);
			h && (c = lp(h), (T && !bp(9) ? Us(c, 0, c, 1) : Mo ? new Xs(Qs(c, 0, c, 1)) : Lo ? new Rs(Qs(c, 0,
				c, 1)) : Ko ? new Ws(Qs(c, 0, c, 1)) : new Ns(Qs(c, 0, c, 1))).select())
		}
		N.fk = function(a) {
			var a = a || [],
				b = this.ec,
				c = this.fb;
			c.vg(b);
			b || e(n("Container is not defined"));
			var d = c.d(Ul, k),
				f = [c.d(Ul, k, Rf), c.d(ti, {
					"class": Gj
				}, Qm)];
			this.lc = new iu(f);
			if (a)
				for (f = 0; f < a[B]; f++) {
					var h = k,
						j = a[f],
						o = j.datasource,
						r = j.gadget,
						w = j.userprefs,
						C = j[E],
						L = j[dl],
						ta = j[F] || Gm;
					switch (j[z]) {
						case ei:
							h = this.Gc(f, kn(function(a) {
								ba[bb]((new Cq(a)).nd(qm, $k), fg)
							}, o), $f, Bj);
							break;
						case Tj:
							h = this.Gc(f, kn(function(a, b) {
								ku(2, {
									message: Af + ta + Zd + aa(a) + me + aa(b) + lu(w) +
										Yd
								})
							}, r, o), Gg, Dj);
							break;
						case jk:
							h = this.Gc(f, kn(function(a,
								b, c) {
								ku(3, {
									message: zf + aa(b) + oe + a + ne + aa(c) + qe
								})
							}, o, L, C), rg, Dj);
							break;
						case Sj:
							h = this.Gc(f, kn(function(a) {
								ba[bb]((new Cq(a)).nd(qm, al), fg)
							}, o), ag, Bj);
							break;
						case ck:
							h = this.Gc(f, kn(function(a, b, c) {
								ba[bb](Yj + aa(a) + me + aa(b) + lu(c))
							}, r, o, w), If, Cj);
							break;
						default:
							e(n("No such toolbar component as: " + j.toSource()))
					}
					h && this.lc.gb(h)
				}
			hq(this.lc, mh, jn(this.Ii, this));
			this.lc.ub(d);
			c[Ya](b, d)
		};
		N.ok = function() {
			this.lc.xh(-1)
		};
		N.Ii = function() {
			this.bh[this.lc.qd()]();
			this.ok()
		};
		N.Gc = function(a, b, c) {
			c = new Jt(c);
			this.bh[a] = b;
			return c
		};

		function lu(a) {
			if (!a) return J;
			var b = J,
				c;
			for (c in a) b += le + c + Cf + aa(a[c]);
			return b
		};
		m("google.visualization.drawChart", Gs);
		m("google.visualization.drawFromUrl", function(a, b) {
			var c = new Cq(b || ja[Uc][wd]),
				d = c.kh(kk),
				f;
			P(d) ? f = d : (f = {}, co(c.Z.Tb(), function(a) {
				var b = c.kh(a);
				try {
					P(b) && (b = xn(b))
				} catch (d) {}
				f[a] = b
			}), f.options = fn(f));
			Gs(f, a)
		});
		m("google.visualization.createUrl", function(a, b) {
			R(a) && (a = xn(a));
			var c = [],
				d, f;
			for (f in a)
				if (f == Zk) {
					var h = a[f],
						j;
					for (j in h) d = h[j], R(d) || (d = un(d)), c[s](j + Cf + En(d))
				} else d = a[f], R(d) || (d = bn(d[Hc]) ? d[Hc]() : un(d)), c[s](f + Cf + En(d));
			d = es() + af;
			d = d[u](/^https?:/, J);
			c = (b || d) + Ef + c[Ld](fe);
			c = c[u](/'/g, ee);
			return c = c[u](/"/g, de)
		});
		m("google.visualization.createSnippet", function(a) {
			var b = es() + bf,
				b = b[u](/^https?:/, J),
				b = Bf + b + $d,
				a = Hs(a)[Hc](),
				a = a[u](/</g, ie),
				a = a[u](/>/g, he);
			return b + a + Rd
		});
		m("google.visualization.createWrapper", Hs);
		m("google.visualization.ChartWrapper", Y);
		p(Y[D], wi, Y[D][kd]);
		p(Y[D], km, Y[D][Hc]);
		p(Y[D], ij, Y[D].getSnapshot);
		p(Y[D], Xi, Y[D][dd]);
		p(Y[D], Yi, Y[D][tb]);
		p(Y[D], "getChartName", Y[D].getChartName);
		p(Y[D], "getChartType", Y[D].getChartType);
		p(Y[D], "getChart", Y[D].getChart);
		p(Y[D], Wi, Y[D][td]);
		p(Y[D], dj, Y[D][sd]);
		p(Y[D], ej, Y[D][yd]);
		p(Y[D], fj, Y[D][nd]);
		p(Y[D], "getView", Y[D][Cc]);
		p(Y[D], "getOption", Y[D].getOption);
		p(Y[D], "getOptions", Y[D][mb]);
		p(Y[D], "getState", Y[D][od]);
		p(Y[D], "pushView", Y[D].pushView);
		p(Y[D], "sendQuery", Y[D].sendQuery);
		p(Y[D], Kl, Y[D][Mc]);
		p(Y[D], Ll, Y[D][hd]);
		p(Y[D], "setChart", Y[D].setChart);
		p(Y[D], "setChartName", Y[D].setChartName);
		p(Y[D], "setChartType", Y[D].setChartType);
		p(Y[D], Jl, Y[D].setContainerId);
		p(Y[D], Nl, Y[D].setPackages);
		p(Y[D], Ol, Y[D][$c]);
		p(Y[D], Pl, Y[D][fc]);
		p(Y[D], "setView", Y[D][Zc]);
		p(Y[D], "setOption", Y[D].setOption);
		p(Y[D], Ml, Y[D][Vc]);
		p(Y[D], "setState", Y[D][wc]);
		m("google.visualization.ControlWrapper", Z);
		p(Z[D], wi, Z[D][kd]);
		p(Z[D], km, Z[D][Hc]);
		p(Z[D], ij, Z[D].getSnapshot);
		p(Z[D], Xi, Z[D][dd]);
		p(Z[D], Yi, Z[D][tb]);
		p(Z[D], "getControlName", Z[D].getControlName);
		p(Z[D], "getControlType", Z[D].getControlType);
		p(Z[D], "getControl", Z[D].getControl);
		p(Z[D], Wi, Z[D][td]);
		p(Z[D], dj, Z[D][sd]);
		p(Z[D], ej, Z[D][yd]);
		p(Z[D], fj, Z[D][nd]);
		p(Z[D], "getView", Z[D][Cc]);
		p(Z[D], "getOption", Z[D].getOption);
		p(Z[D], "getOptions", Z[D][mb]);
		p(Z[D], "getState", Z[D][od]);
		p(Z[D], "sendQuery", Z[D].sendQuery);
		p(Z[D], Kl, Z[D][Mc]);
		p(Z[D], Ll, Z[D][hd]);
		p(Z[D], "setControlName", Z[D].setControlName);
		p(Z[D], "setControlType", Z[D].setControlType);
		p(Z[D], Jl, Z[D].setContainerId);
		p(Z[D], Nl, Z[D].setPackages);
		p(Z[D], Ol, Z[D][$c]);
		p(Z[D], Pl, Z[D][fc]);
		p(Z[D], "setView", Z[D][Zc]);
		p(Z[D], "setOption", Z[D].setOption);
		p(Z[D], Ml, Z[D][Vc]);
		p(Z[D], "setState", Z[D][wc]);
		m("google.visualization.DashboardWrapper", $);
		p($[D], wi, $[D][kd]);
		p($[D], km, $[D][Hc]);
		p($[D], "getBindings", $[D].getBindings);
		p($[D], Xi, $[D][dd]);
		p($[D], Yi, $[D][tb]);
		p($[D], "getDashboard", $[D].getDashboard);
		p($[D], "getDashboardName", $[D].getDashboardName);
		p($[D], Wi, $[D][td]);
		p($[D], dj, $[D][sd]);
		p($[D], ej, $[D][yd]);
		p($[D], fj, $[D][nd]);
		p($[D], "getView", $[D][Cc]);
		p($[D], "getWrappers", $[D].getWrappers);
		p($[D], "setBindings", $[D].setBindings);
		p($[D], Kl, $[D][Mc]);
		p($[D], Ll, $[D][hd]);
		p($[D], "setDashboardName", $[D].setDashboardName);
		p($[D], Jl, $[D].setContainerId);
		p($[D], Nl, $[D].setPackages);
		p($[D], Ol, $[D][$c]);
		p($[D], Pl, $[D][fc]);
		p($[D], "setView", $[D][Zc]);
		p($[D], ij, $[D].getSnapshot);
		p($[D], "setWrappers", $[D].setWrappers);
		m("google.visualization.drawToolbar", function(a, b) {
			new ju(a, b)
		});
		m("google.visualization.data.avg", function(a) {
			return Is(a) / a[B]
		});
		m("google.visualization.data.count", function(a) {
			return a[B]
		});
		m("google.visualization.data.group", function(a, b, c) {
			function d(a, b, c, d) {
				return b[G](k, c[A](d, a))
			}
			var f = [],
				h = [];
			co(b, function(a) {
				if (an(a)) f[s](a);
				else if (Vm(a) == Uk) {
					var b = a.column;
					Fk in a && h[s]([b, {
						calc: kn(d, b, a.modifier),
						type: a[z],
						label: a[Id],
						id: a.id
					}]);
					f[s](b)
				}
			});
			if (0 != h[B]) {
				for (var j = new google[E][md](a), o = j.getViewColumns(), r = a[Dc](), w = 0; w <
					r; w++) co(h, function(a) {
					o[a[0]] = a[1]
				});
				j[Md](o);
				a = j
			}
			var C = new google[E].DataTable,
				L = [];
			co(f, function(c, d) {
				var f = a[Ub](c),
					h = b[d][Id] || a[Qb](c);
				C[Dd](f, h, b[d].id);
				L[s](f)
			});
			c = c || [];
			co(c, function(b) {
				var c = b.column,
					c = b[Id] || a[Qb](c);
				C[Dd](b[z], c, b.id)
			});
			var ta = [];
			co(f, function(a) {
				ta[s]({
					column: a
				})
			});
			for (var ia = a[Wb](ta), db = [], Da = 0; Da < c[B]; Da++) db[s]([]);
			for (Da = 0; Da < ia[B]; Da++) {
				co(c, function(b, c) {
					db[c][s](a[A](ia[Da], b.column))
				});
				j = l;
				if (Da < ia[B] - 1) {
					j = i;
					for (r = 0; r < f[B]; r++) {
						var w = a[A](ia[Da], f[r]),
							Ja = a[A](ia[Da + 1], f[r]);
						if (0 != google[E].datautils.compareValues(L[r], w, Ja)) {
							j = l;
							break
						}
					}
				}
				if (!j) {
					var ma = C.addRow();
					co(f, function(b, c) {
						C[Ic](ma, c, a[A](ia[Da], b))
					});
					var ra =
						b[B];
					co(c, function(a, b) {
						var c = a.aggregation[G](k, db[b]);
						C[Ic](ma, ra + b, c)
					});
					for (j = 0; j < c[B]; j++) db[j] = []
				}
			}
			return C
		});
		m("google.visualization.data.join", function(a, b, c, d, f, h) {
			var j = c == sk || c == Li,
				o = c == Al || c == Li,
				r = new google[E].DataTable,
				w = [];
			co(d, function(c) {
				var d = a[Ub](c[0]),
					f = b[Ub](c[1]);
				d != f && e(n("Key types do not match:" + d + ve + f));
				f = r[Dd](d, a[Qb](c[0]));
				r[Db](f, a[Ab](c[0]));
				w[s](d)
			});
			var C = [],
				L = [];
			co(d, function(a) {
				C[s]({
					column: a[0]
				});
				L[s]({
					column: a[1]
				})
			});
			var ta = a[Wb](C),
				ia = b[Wb](L);
			co(f, function(b) {
				var c = r[Dd](a[Ub](b), a[Qb](b));
				r[Db](c, a[Ab](b))
			});
			co(h, function(a) {
				var c = r[Dd](b[Ub](a), b[Qb](a));
				r[Db](c, b[Ab](a))
			});
			for (var db = l, Da = 0, Ja = 0, ma = 0; Da < ta[B] || Ja < ia[B];) {
				var ra = 0,
					Aa = [];
				if (Ja >= ia[B])
					if (j) Aa[0] = ta[Da], ra = -1;
					else break;
				else if (Da >= ta[B])
					if (o) Aa[1] = ia[Ja], ra = 1;
					else break;
				else {
					Aa[0] = ta[Da];
					Aa[1] = ia[Ja];
					for (var H = 0; H < d[B]; H++) {
						var ra = a[A](Aa[0], d[H][0]),
							mu = b[A](Aa[1], d[H][1]),
							ra = google[E].datautils.compareValues(w[H], ra, mu);
						if (0 != ra) break
					}
				}
				if (db && 0 != ra) db = l, Ja++;
				else {
					if (-1 == ra && j || 1 == ra && o || 0 == ra) {
						r.addRow();
						var Oe, ec; - 1 == ra && j || 0 == ra && c != Al ? (Oe = a, ec = 0) : (Oe = b,
							ec = 1);
						co(d, function(a, b) {
							c == Li ? r[Ic](ma, b, Oe[A](Aa[ec],
								a[ec])) : r[jc](ma, b, Oe[A](Aa[ec], a[ec]), Oe[Fd](Aa[ec],
								a[ec]), Oe[Fc](Aa[ec], a[ec]))
						});
						if (-1 == ra && j || 0 == ra) {
							var nk = d[B];
							co(f, function(b, c) {
								r[jc](ma, c + nk, a[A](Aa[0], b), a[Fd](Aa[0], b), a[Fc](Aa[0],
									b))
							})
						}
						if (1 == ra && o || 0 == ra) nk = f[B] + d[B], co(h, function(a, c) {
							r[jc](ma, c + nk, b[A](Aa[1], a), b[Fd](Aa[1], a), b[Fc](Aa[1], a))
						});
						ma++
					}
					1 == ra ? Ja++ : Da++;
					0 == ra && (db = i)
				}
			}
			return r
		});
		m("google.visualization.data.max", function(a) {
			if (0 == a[B]) return k;
			for (var b = a[0], c = 1; c < a[B]; c++) {
				var d = a[c];
				d != k && d > b && (b = d)
			}
			return b
		});
		m("google.visualization.data.min", function(a) {
			if (0 == a[B]) return k;
			for (var b = a[0], c = 1; c < a[B]; c++) {
				var d = a[c];
				d != k && d < b && (b = d)
			}
			return b
		});
		m("google.visualization.data.month", function(a) {
			return a[Ac]() + 1
		});
		m("google.visualization.data.sum", Is);
		m("__gvizguard__", i);
		m("google.visualization.Query", dr);
		p(dr[D], wk, dr[D].makeRequest);
		p(dr[D], Pl, dr[D][fc]);
		p(dr[D], Ol, dr[D][$c]);
		p(dr[D], "send", dr[D][Jb]);
		p(dr[D], "setRefreshable", dr[D].setRefreshable);
		p(dr[D], "setTimeout", dr[D][Lc]);
		p(dr[D], "setHandlerType", dr[D].el);
		p(dr[D], "setHandlerParameter", dr[D].Ch);
		p(dr, "setResponse", mr);
		p(dr[D], kh, dr[D][Kc]);
		m("google.visualization.QueryResponse", Zq);
		p(Zq[D], Yi, Zq[D][tb]);
		p(Zq[D], "isError", Zq[D][Nb]);
		p(Zq[D], "hasWarning", Zq[D].hasWarning);
		p(Zq[D], "getReasons", Zq[D].getReasons);
		p(Zq[D], "getMessage", Zq[D].getMessage);
		p(Zq[D], "getDetailedMessage", Zq[D].getDetailedMessage);
		m("google.visualization.DataTable", V);
		p(V[D], "addColumn", V[D][Dd]);
		p(V[D], "addRow", V[D].addRow);
		p(V[D], "addRows", V[D][pc]);
		p(V[D], "clone", V[D][cd]);
		p(V[D], "getColumnId", V[D].getColumnId);
		p(V[D], Qi, V[D].getColumnIndex);
		p(V[D], Ri, V[D][Qb]);
		p(V[D], Si, V[D][Tc]);
		p(V[D], Ui, V[D][Qc]);
		p(V[D], Ti, V[D][Ab]);
		p(V[D], Vi, V[D].getColumnRange);
		p(V[D], "getColumnRole", V[D].getColumnRole);
		p(V[D], "getColumnType", V[D][Ub]);
		p(V[D], Zi, V[D].getDistinctValues);
		p(V[D], $i, V[D].getFilteredRows);
		p(V[D], aj, V[D][Fd]);
		p(V[D], bj, V[D][rb]);
		p(V[D], cj, V[D][Dc]);
		p(V[D], "getProperties", V[D][Fc]);
		p(V[D], "getProperty", V[D].getProperty);
		p(V[D], hj, V[D].getRowProperty);
		p(V[D], gj, V[D][cc]);
		p(V[D], "getSortedRows", V[D][Wb]);
		p(V[D], kj, V[D].getTableProperty);
		p(V[D], jj, V[D][dc]);
		p(V[D], "getValue", V[D][A]);
		p(V[D], "insertColumn", V[D].insertColumn);
		p(V[D], "insertRows", V[D].insertRows);
		p(V[D], "removeColumn", V[D].removeColumn);
		p(V[D], "removeColumns", V[D].removeColumns);
		p(V[D], "removeRow", V[D].removeRow);
		p(V[D], "removeRows", V[D].removeRows);
		p(V[D], "setCell", V[D][jc]);
		p(V[D], "setColumnLabel", V[D].setColumnLabel);
		p(V[D], "setColumnProperties", V[D][Db]);
		p(V[D], "setColumnProperty", V[D].setColumnProperty);
		p(V[D], "setFormattedValue", V[D].setFormattedValue);
		p(V[D], "setProperties", V[D].setProperties);
		p(V[D], "setProperty", V[D].setProperty);
		p(V[D], "setRowProperties", V[D].setRowProperties);
		p(V[D], "setRowProperty", V[D].setRowProperty);
		p(V[D], "setTableProperties", V[D].setTableProperties);
		p(V[D], "setTableProperty", V[D].setTableProperty);
		p(V[D], "setValue", V[D][Ic]);
		p(V[D], "sort", V[D].sort);
		p(V[D], km, V[D][Hc]);
		m("google.visualization.DataView", W);
		p(W, "fromJSON", function(a, b) {
			R(b) && (b = xn(b));
			var c = new W(a),
				d = b.columns,
				f = b[zd];
			P(d) && c[Md](d);
			P(f) && c.setRows(f);
			return c
		});
		p(W[D], "getColumnId", W[D].getColumnId);
		p(W[D], Qi, W[D].getColumnIndex);
		p(W[D], Ri, W[D][Qb]);
		p(W[D], Si, W[D][Tc]);
		p(W[D], Ui, W[D][Qc]);
		p(W[D], Ui, W[D][Qc]);
		p(W[D], Ti, W[D][Ab]);
		p(W[D], Vi, W[D].getColumnRange);
		p(W[D], "getColumnRole", W[D].getColumnRole);
		p(W[D], "getColumnType", W[D][Ub]);
		p(W[D], Zi, W[D].getDistinctValues);
		p(W[D], $i, W[D].getFilteredRows);
		p(W[D], aj, W[D][Fd]);
		p(W[D], bj, W[D][rb]);
		p(W[D], cj, W[D][Dc]);
		p(W[D], "getProperties", W[D][Fc]);
		p(W[D], "getProperty", W[D].getProperty);
		p(W[D], hj, W[D].getRowProperty);
		p(W[D], gj, W[D][cc]);
		p(W[D], "getSortedRows", W[D][Wb]);
		p(W[D], "getTableColumnIndex", W[D].getTableColumnIndex);
		p(W[D], "getUnderlyingTableColumnIndex", W[D].getUnderlyingTableColumnIndex);
		p(W[D], "getTableRowIndex", W[D][Zb]);
		p(W[D], "getUnderlyingTableRowIndex", W[D].getUnderlyingTableRowIndex);
		p(W[D], kj, W[D].getTableProperty);
		p(W[D], jj, W[D][dc]);
		p(W[D], "getValue", W[D][A]);
		p(W[D], "getViewColumnIndex", W[D].getViewColumnIndex);
		p(W[D], "getViewColumns", W[D].getViewColumns);
		p(W[D], "getViewRowIndex", W[D].getViewRowIndex);
		p(W[D], "getViewRows", W[D].getViewRows);
		p(W[D], "hideColumns", W[D].hideColumns);
		p(W[D], "hideRows", W[D].hideRows);
		p(W[D], "setColumns", W[D][Md]);
		p(W[D], "setRows", W[D].setRows);
		p(W[D], "toDataTable", W[D][Rb]);
		p(W[D], km, W[D][Hc]);
		m("google.visualization.GadgetHelper", nr);
		p(nr[D], "createQueryFromPrefs", nr[D].createQueryFromPrefs);
		p(nr[D], "validateResponse", nr[D].validateResponse);
		m("google.visualization.errors", X);
		p(X, "addError", X[Gc]);
		p(X, "removeAll", X[id]);
		p(X, "removeError", X.removeError);
		p(X, "addErrorFromQueryResponse", X.addErrorFromQueryResponse);
		p(X, "getContainer", X.getContainer);
		p(X, "createProtectedCallback", X.createProtectedCallback);
		m("google.visualization.events.addListener", function(a, b, c) {
			a = rr(a);
			b = hq(a, b, sr(c));
			return new tr(b)
		});
		m("google.visualization.events.trigger", function(a, b, c) {
			a = rr(a);
			b = new ur(b, c);
			rq(a, b)
		});
		m("google.visualization.events.removeListener", function(a) {
			a = a && bn(a.getKey) && a.getKey();
			return an(a) ? mq(a) : l
		});
		m("google.visualization.events.removeAllListeners", function(a) {
			var b = rr(a),
				b = oq(b);
			Tp(a.__eventTarget);
			a.__eventTarget = g;
			return b
		});
		m("google.visualization.QueryWrapper", vr);
		p(vr[D], Ml, vr[D][Vc]);
		p(vr[D], wi, vr[D][kd]);
		p(vr[D], "setCustomErrorHandler", vr[D].dl);
		p(vr[D], "sendAndDraw", vr[D].sendAndDraw);
		p(vr[D], "setCustomPostResponseHandler", vr[D].setCustomPostResponseHandler);
		p(vr[D], "setCustomResponseHandler", vr[D].setCustomResponseHandler);
		p(vr[D], kh, vr[D][Kc]);
		m("google.visualization.arrayToDataTable", function(a, b) {
			var c = new V,
				d, f, h;
			Q(a) || e(n("Not an array"));
			if (0 == a[B]) return c;
			Q(a[0]) || e(n(Cg));
			var j = a[0][B];
			for (d = 1; d < a[B]; d++)(!Q(a[d]) || a[d][B] != j) && e(n(Cg));
			var o = (d = !b) ? a[0] : [],
				r = d ? a[hb](1, a[B]) : a,
				w = [];
			for (f = 0; f < j; f++) {
				var C = M;
				for (d = 0; d < r[B]; d++)
					if (h = r[d][f], P(h)) {
						R(h) ? C = M : an(h) ? C = K : Q(h) ? C = im : typeof h == Ch ? C = Ch : (Zm(
							h) && e(n("Date and datetime column types are not supported")), e(n(
								"Invalid value in " + d + ue + f)));
						break
					} w[f] = C
			}
			for (f = 0; f < j; f++) c[Dd](w[f], o[f]);
			c[pc](r);
			return c
		});
		m("google.visualization.datautils.compareValues", Qq);
	})();

	(function() {
		function h(a) {
			throw a;
		}
		var ba = void 0,
			k = !0,
			l = null,
			n = !1,
			ca = google_exportSymbol,
			da = window,
			ea = Number,
			fa = Object,
			p = Infinity,
			r = Error,
			ga = parseInt,
			ha = parseFloat,
			ia = isFinite,
			ja = document,
			ka = isNaN,
			la = google_exportProperty,
			ma = Array,
			s = Math;

		function oa(a, b) {
			return a.width = b
		}

		function pa(a, b) {
			return a.text = b
		}

		function qa(a, b) {
			return a.round = b
		}

		function ra(a, b) {
			return a.fontFamily = b
		}

		function sa(a, b) {
			return a.ceil = b
		}

		function ta(a, b) {
			return a.floor = b
		}

		function ua(a, b) {
			return a.stroked = b
		}

		function va(a, b) {
			return a.color = b
		}

		function wa(a, b) {
			return a.currentTarget = b
		}

		function xa(a, b) {
			return a.left = b
		}

		function ya(a, b) {
			return a.format = b
		}

		function za(a, b) {
			return a.keyCode = b
		}

		function Aa(a, b) {
			return a.type = b
		}

		function Ba(a, b) {
			return a.clear = b
		}

		function Ca(a, b) {
			return a.orientation = b
		}

		function Ea(a, b) {
			return a.getValue = b
		}

		function Fa(a, b) {
			return a.visibility = b
		}

		function Ga(a, b) {
			return a.length = b
		}

		function Ha(a, b) {
			return a.title = b
		}

		function Ia(a, b) {
			return a.position = b
		}

		function Ja(a, b) {
			return a.cursor = b
		}

		function Ka(a, b) {
			return a.className = b
		}

		function La(a, b) {
			return a.index = b
		}

		function Ma(a, b) {
			return a.next = b
		}

		function Na(a, b) {
			return a.fontSize = b
		}

		function Oa(a, b) {
			return a.clone = b
		}

		function Pa(a, b) {
			return a.target = b
		}

		function Qa(a, b) {
			return a.anchor = b
		}

		function Ra(a, b) {
			return a.bottom = b
		}

		function Sa(a, b) {
			return a.contains = b
		}

		function Ta(a, b) {
			return a.display = b
		}

		function Ua(a, b) {
			return a.height = b
		}

		function Va(a, b) {
			return a.right = b
		}
		var t = "appendChild",
			v = "push",
			Wa = "direction",
			Xa = "trigger",
			Ya = "getBoundingClientRect",
			Za = "test",
			$a = "relatedTarget",
			w = "width",
			x = "text",
			z = "round",
			ab = "slice",
			bb = "replace",
			cb = "nodeType",
			A = "data",
			db = "ceil",
			eb = "events",
			B = "floor",
			fb = "content",
			gb = "getElementById",
			hb = "concat",
			ib = "charAt",
			kb = "selected",
			lb = "createTextNode",
			mb = "getNumberOfColumns",
			nb = "value",
			ob = "preventDefault",
			pb = "item",
			qb = "targetTouches",
			rb = "move",
			sb = "indexOf",
			tb = "color",
			ub = "dispatchEvent",
			vb = "capture",
			C = "left",
			wb = "domain",
			xb = "screenX",
			yb = "screenY",
			zb = "format",
			Ab = "getBoxObjectFor",
			Bb = "createElement",
			Cb = "getColumnLabel",
			Db = "atan2",
			Eb = "keyCode",
			Fb = "getColumnType",
			Gb = "firstChild",
			Hb = "clientLeft",
			Ib = "sqrt",
			Jb = "getTableRowIndex",
			E = "setAttribute",
			Kb = "clientTop",
			Lb = "handleEvent",
			Mb = "path",
			Nb = "setSelection",
			F = "type",
			Ob = "parentWindow",
			Pb = "clear",
			Qb = "orientation",
			Rb = "defaultView",
			Sb = "name",
			H = "getValue",
			Tb = "NumberFormat",
			Ub = "contentWindow",
			Vb = "getTime",
			Wb = "clientX",
			Xb = "clientY",
			Yb = "documentElement",
			Zb = "substr",
			$b = "scrollTop",
			ac = "toString",
			bc = "bold",
			dc =
			"getNumberOfRows",
			I = "length",
			ec = "propertyIsEnumerable",
			J = "title",
			fc = "position",
			K = "prototype",
			gc = "cursor",
			hc = "size",
			ic = "index",
			jc = "setChartType",
			kc = "clientWidth",
			lc = "getSelection",
			mc = "setTimeout",
			nc = "document",
			oc = "next",
			pc = "ctrlKey",
			qc = "split",
			rc = "formatValue",
			sc = "constructor",
			tc = "stopPropagation",
			uc = "scope",
			vc = "rect",
			M = "fontSize",
			wc = "visualization",
			xc = "rotate",
			yc = "hasOwnProperty",
			zc = "style",
			Ac = "close",
			Bc = "body",
			Cc = "removeChild",
			Dc = "clone",
			Ec = "target",
			Fc = "dataType",
			Gc = "getUTCMonth",
			N = "call",
			Hc = "anchor",
			Ic = "removeAll",
			O = "start",
			Jc = "lastIndexOf",
			Kc = "draw",
			Lc = "getFullYear",
			Mc = "clientHeight",
			Nc = "scrollLeft",
			P = "bottom",
			Oc = "currentStyle",
			Pc = "documentMode",
			Qc = "setTime",
			Rc = "scale",
			Sc = "every",
			Tc = "contains",
			Uc = "apply",
			Vc = "tagName",
			Wc = "contentDocument",
			Xc = "getFormattedValue",
			Yc = "errors",
			Zc = "parentNode",
			$c = "areas",
			Q = "height",
			ad = "compact",
			bd = "splice",
			cd = "join",
			dd = "lineWidth",
			ed = "transform",
			fd = "toLowerCase",
			R = "right",
			S = "",
			gd = "\n",
			hd = "\u000b",
			id = " ",
			jd = " (",
			kd = " - ",
			ld = " / ",
			md = " [",
			nd = " _loaded = true;",
			od = ' name="',
			pd = ' onload="CHART_loaded()"',
			qd = ' type="',
			rd = ' xmlns:svg="http://www.w3.org/2000/svg"',
			sd = ' xmlns:xlink="http://www.w3.org/1999/xlink">',
			td = '"',
			ud = "#",
			vd = "#$1$1$2$2$3$3",
			wd = "#000020",
			xd = "#666666",
			yd = "#7993ad",
			zd = "#7f9a6b",
			Ad = "#8080ff",
			Bd = "#9bbdde",
			Cd = "#a2c488",
			Dd = "#a992ad",
			Ed = "#ad7d79",
			Fd = "#aea971",
			Gd = "#c991ff",
			Hd = "#ccc",
			Id = "#cdc785",
			Jd = "#ce9839",
			Kd = "#d2feb0",
			Ld = "#d6b9db",
			Md = "#dea19b",
			Nd = "#e0e0e0",
			Od = "#eeee5b",
			Pd = "#eeeeac",
			Qd = "#ffbc46",
			Rd = "#ffd1c9",
			Sd = "#fff",
			Td = "#fff0db",
			Ud = "#ffffff",
			Vd = "#gridline#",
			Wd = "#label#",
			Xd = "#title",
			Yd = "%",
			Zd = "&",
			$d = "&amp;",
			ae = "&gt;",
			be = "&lt;",
			ce = "&quot;",
			de = "(",
			ee = "(\\d*)(\\D*)",
			fe = ")",
			ge = ",",
			he = ",\n",
			ie = ", ",
			je = ",0,",
			ke = "-",
			le = "-200px",
			me = ".",
			ne = "...",
			oe = ".color",
			pe = ".enableInteractivity",
			qe = ".gif",
			re = ".hole",
			se = ".offset",
			te = ".style",
			ue = ".textStyle",
			ve = ".type",
			we = ".visibleInLegend",
			xe = "/",
			ye = "/core/patterns/",
			ze = "/static/modules/gviz/",
			Ae = "0",
			Be = "0 0",
			Ce = "0 0 4 4",
			De = "0%",
			Ee = "00",
			Fe = "000",
			Ge = "1",
			He = "1.0",
			Ie = "1.8",
			Je = "1.9",
			Ke = "100%",
			Le = "1px",
			Me = "1px solid infotext",
			Ne = "2",
			Oe = "4",
			Pe = "420+",
			Qe = "5.5",
			Re = "500",
			Se = "636363",
			Te = "6c6c6c",
			Ue = "8",
			Ve = "9",
			We = "9.0",
			Xe = "9e9e9e",
			Ye = ":",
			Ze = "<",
			$e = "</body>",
			af = "</head>",
			bf = "</html>",
			cf = "<\/script>",
			df = '<?xml version="1.0"?>',
			ef = '<body marginwidth="0" marginheight="0"',
			ff = '<div id="chartArea"></div>',
			gf = "<head>",
			hf = '<html xmlns:v="urn:scheman-microsoft-com:vml">',
			jf = '<html xmlns="http://www.w3.org/1999/xhtml"',
			kf = '<script type="text/javascript">',
			lf = "<style> v\\:* { behavior:url(#default#VML);}</style>",
			mf = ">",
			nf = "@",
			of = "A",
			pf = "AT",
			qf = "AreaChart",
			rf = "B",
			sf = "BODY",
			tf = "C",
			uf = "CSS1Compat",
			vf = "ComboChart",
			wf = "DAY",
			xf = "Date(",
			yf = "Drawing_Frame_",
			zf = "E",
			Af = "HH:mm",
			Bf = "HH:mm:ss",
			Cf = "HOUR",
			Df = "HTML",
			Ef = "IFRAME",
			Ff = "Invalid listener argument",
			Gf = "L",
			Hf = "LineChart",
			If = "M",
			Jf = "MILLISECOND",
			Kf = "MINUTE",
			Mf = "MONTH",
			Nf = "No data",
			Of = "Other",
			Pf = "Q",
			Qf = "Q yyyy",
			Rf = "QUARTER",
			Sf = "SECOND",
			Tf = "ScatterChart",
			Uf = "Style",
			Vf = "T",
			Wf = "TR",
			Xf = "WA",
			Yf = "WEEK",
			Zf = "Width",
			$f = "X",
			ag = "YEAR",
			bg = "Z",
			cg = "[",
			dg = "[object Array]",
			eg = "[object Function]",
			fg =
			"[object Window]",
			gg = "\\u",
			hg = "]",
			ig = "_",
			jg = "_ABSTRACT_RENDERER_ID_",
			kg = "_default_",
			lg = "absolute",
			mg = "angle",
			ng = "animation.duration",
			og = "animation.easing",
			pg = "animationEasing",
			qg = "animationfinish",
			rg = "annotation",
			sg = "annotation.",
			tg = "annotationClick",
			ug = "annotationHoverIn",
			vg = "annotationHoverOut",
			wg = "annotations.domainTextStyle",
			xg = "annotations.stemColor",
			yg = "annotations.style",
			zg = "annotations.textStyle",
			Ag = "annotationtext",
			Bg = "arc",
			Cg = "area",
			Dg = "areaOpacity",
			Eg = "aria-",
			Fg = "array",
			Gg = "attachToEnd",
			Hg = "attachToStart",
			Ig = "axisBackgroundColor",
			Jg = "axisTitlesPosition",
			Kg = "axistick",
			Lg = "axistitle",
			Mg = "backgroundColor",
			Ng = "bar",
			Og = "barWidth",
			Pg = "bars",
			Qg = "baseline",
			Rg = "baselineColor",
			Sg = "beforehide",
			Tg = "beforeshow",
			Ug = "black",
			Vg = "block",
			Wg = "blur",
			Xg = "bold",
			Yg = "boolean",
			Zg = "border-box",
			$g = "borderBottom",
			ah = "borderBottomWidth",
			bh = "borderLeft",
			dh = "borderLeftWidth",
			eh = "borderRight",
			fh = "borderRightWidth",
			gh = "borderTop",
			hh = "borderTopWidth",
			ih = "both",
			jh = "bottom",
			kh = "bottom-space",
			lh = "bound",
			mh = "boxWidth",
			nh = "boxes",
			oh = "bubble",
			ph = "bubble.opacity",
			qh = "bubble.strokeColor",
			rh = "bubble.textStyle",
			sh = "bubbles",
			th = "call",
			uh = "callee",
			vh = "candlestick",
			wh = "candlesticks",
			xh = "category",
			yh = "categoryClick",
			zh = "categoryHoverIn",
			Ah = "categoryHoverOut",
			Bh = "categorypoint",
			Ch = "ceil",
			Dh = "cell",
			Eh = "center",
			Fh = "chart",
			Gh = "chartArea",
			Hh = "chartArea.height",
			Ih = "chartArea.left",
			Jh = "chartArea.top",
			Kh = "chartArea.width",
			Lh = "chartClick",
			Mh = "chartOptions",
			Nh = "chartType",
			Oh = "chartarea",
			Ph = "circle",
			Qh = "class",
			Rh = "click",
			Sh = "clip-path",
			Th = "clipPath",
			Uh = "clipped",
			Vh = "close",
			Wh = "closedPhase",
			Xh = "col-resize",
			Yh = "color",
			Zh = "color2",
			$h = "colorAxis.colors",
			ai = "colorAxis.maxValue",
			bi = "colorAxis.minValue",
			ci = "colorAxis.values",
			di = "colorAxis.values must not contain nulls",
			ei = "colors",
			fi = "column",
			gi = "columns",
			hi = "connectSteps",
			ii = "contextmenu",
			ji = "curve",
			ki = "curveType",
			li = "cx",
			mi = "cy",
			ni = "d",
			oi = "dash",
			pi = "data",
			qi = "dataType",
			ri = "datum",
			si = "datumClick",
			ti = "datumHoverIn",
			ui = "datumHoverOut",
			vi = "dd MM y",
			wi = "dd MMM y HH:mm:ss",
			xi = "deactivate",
			yi = "default",
			zi = "defs",
			Ai = "direction",
			Bi = "display",
			Ci = "displayTinySlicesInLenged",
			Di = "div",
			Ei = "dive",
			Fi = "domain",
			Gi = "domainAxis",
			Hi = "draw",
			Ii = "e",
			Ji = "easing",
			Ki = "ellipse",
			Li = "emptyString",
			Mi = "enableInteractivity",
			Ni = "end",
			Oi = "error",
			Pi = "explicit",
			Qi = "false",
			Ri = "fill",
			Si = "fill-opacity",
			Ti = "fillOpacity",
			Ui = "firstVisibleText",
			Vi = "fixed",
			Wi = "floor",
			Xi = "focus",
			Yi = "focusTarget",
			Zi = "font-family",
			$i = "font-size",
			aj = "font-style",
			bj = "font-weight",
			cj = "fontName",
			dj = "fontSize",
			ej = "for",
			fj = "format",
			gj = "formatOptions",
			hj = "formatOptions.scaleFactor",
			ij = "formatter.numDecimals",
			jj = "formatter.numSignificantDigits",
			kj = "formatter.unit",
			lj = "formatter.useMagnitudes",
			T = "function",
			mj = "function CHART_loaded() {",
			nj = "g",
			oj = "get",
			pj = "getSelection",
			qj = "google.loader.GoogleApisBase",
			rj = "google.visualization.Version",
			sj = "gradient",
			tj = "gradientUnits",
			uj = "gridline",
			vj = "gridlineColor",
			wj = "gridlines.color",
			xj = "gridlines.count",
			yj = "hAxes.",
			zj = "hAxis",
			Aj = "hAxis#",
			Bj = "height",
			Cj = "hex",
			Dj = "hidden",
			Ej = "hide",
			Fj = "high",
			Gj = "horizontal",
			Hj = "hover",
			Ij = "hovercard",
			Jj = "http://ajax.googleapis.com/ajax",
			Kj = "http://www.w3.org/1999/xhtml",
			Lj = "http://www.w3.org/2000/svg",
			Mj = "id",
			Nj = "iframe",
			Oj = "image/svg+xml",
			Pj = "in",
			Qj = "inAndOut",
			Rj = "inTextPosition",
			Sj = "infobackground",
			Tj = "inline",
			Uj = "inside",
			Vj = "interactivityModel",
			Wj = "interpolateNulls",
			Xj = "interval",
			Yj = "interval.",
			Zj = "intervals.",
			$j = "is3D",
			ak = "isStacked",
			bk = "italic",
			ck = "keydown",
			dk = "keypress",
			ek = "label",
			fk = "labelInLegend",
			gk = "labeled",
			hk = "left",
			ik = "legend",
			jk = "legend#entry#",
			kk = "legend.labeledValueText",
			lk = "legend.maxLines",
			mk = "legend.pagingTextStyle",
			nk = "legend.position",
			ok = "legend.scrollArrows.activeColor",
			pk = "legend.scrollArrows.inactiveColor",
			qk = "legend.scrollArrows.orientation",
			rk = "legend.showPageIndex",
			sk = "legend.textStyle",
			tk = "legendEntryClick",
			uk = "legendEntryHoverIn",
			vk = "legendEntryHoverOut",
			wk = "legendFontSize",
			xk = "legendScrollButtonClick",
			yk = "legendTextColor",
			zk = "legendTextStyle",
			Ak = "line",
			Bk = "lineSize",
			Ck = "lineWidth",
			Dk = "linear",
			Ek = "linearGradient",
			Fk = "log",
			Gk = "logScale",
			Hk = "logScaleX",
			Ik = "low",
			Jk = "majorAxisTextColor",
			Kk = "max",
			Lk = "maxAlternation",
			Mk = "maxValue",
			Nk = "maximized",
			Ok = "middle",
			Pk = "min",
			Qk = "minRangeSize",
			Rk = "minValue",
			Sk = "minorAxisTextColor",
			Tk = "mirrorLog",
			Uk = "mousedown",
			Vk = "mousemove",
			Wk = "mouseout",
			Xk = "mouseover",
			Yk = "mouseup",
			Zk = "move",
			$k = "move_offscreen",
			al = "named",
			bl = "native code",
			cl = "new ",
			dl = "no",
			U = "none",
			el = "nowrap",
			fl = "null",
			gl = "number",
			hl = "o",
			il = "object",
			jl = "offset",
			kl = "on",
			ll = "onmouseout",
			ml = "onmouseover",
			nl = "orientation",
			ol = "out",
			pl = "outTextPosition",
			ql = "outside",
			sl = "overflow",
			tl = "paddingBottom",
			ul = "paddingLeft",
			vl = "paddingRight",
			wl = "paddingTop",
			xl = "path",
			yl = "pathinterval",
			zl = "pattern",
			Al = "patternUnits",
			Bl = "percentage",
			Cl = "phase",
			Dl = "pie",
			El = "pieHole",
			Fl = "pieResidueSliceColor",
			Gl = "pieResidueSliceLabel",
			Hl = "pieSliceBorderColor",
			Il = "pieSliceText",
			Jl = "pieSliceTextStyle",
			Kl = "pixelLeft",
			Ll = "point",
			Ml = "pointSize",
			Nl = "points",
			Ol = "pointsensitivityarea",
			Pl = "position",
			Ql = "position: absolute; top: 0; left: 0; z-index: 1;",
			Rl = "position:absolute;display:none;",
			Sl = "pretty",
			Tl = "primarydiagonalstripes",
			Ul = "px",
			Vl = "r",
			Wl = "rangeChangeEventFiringRate",
			Xl = "rangechange",
			Yl = "ready",
			Zl = "rect",
			$l = "rect(",
			am = "relative",
			bm = "removeSerieButtonClick",
			cm = "removeserie",
			dm = "reset",
			em = "reverseAxis",
			fm = "reverseCategories",
			gm = "rgb",
			hm = "right",
			im = "right-space",
			jm = "role",
			km = "rotate(",
			lm = "round",
			mm = "row",
			nm = "rtl",
			om = "rx",
			pm = "ry",
			qm = "scaleType",
			rm = "scatter",
			sm = "screen",
			tm = "select",
			um = "selectionMode",
			vm = "serieClick",
			wm = "serieHoverIn",
			xm = "serieHoverOut",
			ym = "series",
			zm = "series-color",
			Am = "series-color-dark",
			Bm = "series-color-light",
			Cm = "series.",
			Dm = "seriesType",
			Em = "set",
			Fm = "setSelection",
			Gm = "shortBarWidth",
			Hm = "shortdash",
			Im = "show",
			Jm = "showRemoveSeriesButton",
			Km = "showTextEvery",
			Lm = "showTextEveryMode",
			Mm = "single",
			Nm = "sizeAxis.logScale",
			Om = "sizeAxis.maxSize",
			Pm = "sizeAxis.maxValue",
			Qm = "sizeAxis.minSize",
			Rm = "sizeAxis.minValue",
			Sm = "sizeAxis.scaleType",
			Tm = "slantedText",
			Um = "slantedTextAngle",
			Vm = "slice",
			Wm = "sliceVisibilityThreshold",
			Xm = "slices.",
			Ym = "smoothingFactor",
			Zm = "snapToData",
			$m = "solid",
			an = "sortBubblesBySize",
			bn = "sparkline",
			cn = "splice",
			dn = "square",
			en = "src",
			fn = "start",
			gn = "static",
			hn = "steppedArea",
			jn = "steppedareabar",
			kn = "sticks",
			ln = "stop",
			mn = "stop-color:",
			nn = "stopDomEventPropagation",
			on = "strictFirstColumnType",
			pn = "string",
			qn = "stroke",
			rn = "stroke-dasharray",
			sn = "stroke-linecap",
			tn = "stroke-opacity",
			un = "stroke-width",
			vn = "style",
			wn = "svg",
			xn = "targetAxes.",
			yn = "targetAxis",
			zn = "targetAxisIndex",
			An = "text",
			Bn = "text-anchor",
			Cn = "text-decoration",
			Dn = "textColor",
			En = "textContent",
			Fn = "textFontSize",
			Gn = "textPosition",
			Hn = "textStyle",
			In = "textpathok",
			Jn = "tick",
			Kn = "tickScoringWeights",
			Ln = "ticks",
			Mn = "timeGranularity",
			Nn = "title",
			On = "titleColor",
			Pn = "titleFontSize",
			Qn = "titlePosition",
			Rn = "titleTextStyle",
			Sn = "titleX",
			Tn = "titleY",
			Un = "toggle_display",
			Vn = "tooltip",
			Wn = "tooltip.showColorCode",
			Xn = "tooltip.text",
			Yn = "tooltip.textStyle",
			Zn = "tooltip.trigger",
			$n = "tooltipClick",
			ao = "tooltipFontSize",
			bo = "tooltipHoverIn",
			co = "tooltipHoverOut",
			eo = "tooltipText",
			fo = "tooltipTextColor",
			go = "tooltipTextStyle",
			ho = "tooltipTrigger",
			io = "top",
			jo = "top-space",
			ko =
			"transform",
			lo = "translate(",
			mo = "transparent",
			no = "trigger",
			oo = "true",
			po = "type",
			qo = "unbound",
			ro = "underline",
			so = "url(#",
			to = "userSpaceOnUse",
			uo = "v",
			vo = "v-text-align",
			wo = "v:fill",
			xo = "v:group",
			yo = "v:oval",
			zo = "v:path",
			Ao = "v:rect",
			Bo = "v:shape",
			Co = "v:stroke",
			Do = "v:textpath",
			Eo = "vAxes.",
			Fo = "vAxis",
			Go = "vAxis#",
			Ho = "value",
			Io = "valueFormatter",
			Jo = "var _loaded = false;",
			Ko = "vertical",
			Lo = "viewBox",
			Mo = "viewWindow.max",
			No = "viewWindow.min",
			Oo = "viewWindowMode",
			Po = "visible",
			Qo = "visibleInLegend",
			Ro = "warning",
			So = "white",
			To = "width",
			Uo = "window.event",
			Vo = "x",
			Wo = "x1",
			Xo = "x2",
			Yo = "y",
			Zo = "y1",
			$o = "y2",
			ap = "zOrder",
			bp = "{",
			cp = "}",
			V, dp = this;

		function ep(a, b) {
			for (var c = a[qc](me), d = b || dp, e; e = c.shift();)
				if (W(d[e])) d = d[e];
				else return l;
			return d
		}

		function fp() {}

		function gp(a) {
			var b = typeof a;
			if (b == il)
				if (a) {
					if (a instanceof ma) return Fg;
					if (a instanceof fa) return b;
					var c = fa[K][ac][N](a);
					if (c == fg) return il;
					if (c == dg || typeof a[I] == gl && "undefined" != typeof a[bd] && "undefined" != typeof a[
							ec] && !a[ec](cn)) return Fg;
					if (c == eg || "undefined" != typeof a[N] && "undefined" != typeof a[ec] && !a[ec](th))
						return T
				} else return fl;
			else if (b == T && "undefined" == typeof a[N]) return il;
			return b
		}

		function hp(a) {
			return a !== ba
		}

		function ip(a) {
			return a === l
		}

		function W(a) {
			return a != l
		}

		function jp(a) {
			return gp(a) == Fg
		}

		function kp(a) {
			var b = gp(a);
			return b == Fg || b == il && typeof a[I] == gl
		}

		function lp(a) {
			return mp(a) && typeof a[Lc] == T
		}

		function np(a) {
			return typeof a == pn
		}

		function op(a) {
			return typeof a == gl
		}

		function pp(a) {
			return gp(a) == T
		}

		function mp(a) {
			a = gp(a);
			return a == il || a == Fg || a == T
		}

		function qp(a) {
			return a[rp] || (a[rp] = ++sp)
		}
		var rp = "closure_uid_" + s[B](2147483648 * s.random())[ac](36),
			sp = 0;

		function tp(a, b, c) {
			return a[N][Uc](a.bind, arguments)
		}

		function up(a, b, c) {
			a || h(r());
			if (2 < arguments[I]) {
				var d = ma[K][ab][N](arguments, 2);
				return function() {
					var c = ma[K][ab][N](arguments);
					ma[K].unshift[Uc](c, d);
					return a[Uc](b, c)
				}
			}
			return function() {
				return a[Uc](b, arguments)
			}
		}

		function Z(a, b, c) {
			Z = Function[K].bind && -1 != Function[K].bind[ac]()[sb](bl) ? tp : up;
			return Z[Uc](l, arguments)
		}

		function vp(a, b) {
			var c = ma[K][ab][N](arguments, 1);
			return function() {
				var b = ma[K][ab][N](arguments);
				b.unshift[Uc](b, c);
				return a[Uc](this, b)
			}
		}
		var wp = Date.now || function() {
			return +new Date
		};

		function xp(a, b) {
			function c() {}
			c.prototype = b[K];
			a.Pb = b[K];
			a.prototype = new c;
			a[K].constructor = a
		};

		function yp(a) {
			return a[bb](/^[\s\xa0]+|[\s\xa0]+$/g, S)
		}

		function zp(a, b) {
			if (b) return a[bb](Ap, $d)[bb](Bp, be)[bb](Cp, ae)[bb](Dp, ce);
			if (!Ep[Za](a)) return a; - 1 != a[sb](Zd) && (a = a[bb](Ap, $d)); - 1 != a[sb](Ze) && (a = a[bb](
				Bp, be)); - 1 != a[sb](mf) && (a = a[bb](Cp, ae)); - 1 != a[sb](td) && (a = a[bb](Dp, ce));
			return a
		}
		var Ap = /&/g,
			Bp = /</g,
			Cp = />/g,
			Dp = /\"/g,
			Ep = /[&<>\"]/;

		function Fp(a, b) {
			for (var c = 0, d = yp(S + a)[qc](me), e = yp(S + b)[qc](me), f = s.max(d[I], e[I]), g = 0; 0 ==
				c && g < f; g++) {
				var i = d[g] || S,
					j = e[g] || S,
					m = RegExp(ee, nj),
					o = RegExp(ee, nj);
				do {
					var q = m.exec(i) || [S, S, S],
						u = o.exec(j) || [S, S, S];
					if (0 == q[0][I] && 0 == u[0][I]) break;
					c = ((0 == q[1][I] ? 0 : ga(q[1], 10)) < (0 == u[1][I] ? 0 : ga(u[1], 10)) ? -1 : (0 == q[1]
						[I] ? 0 : ga(q[1], 10)) > (0 == u[1][I] ? 0 : ga(u[1], 10)) ? 1 : 0) || ((0 == q[2][
						I
					]) < (0 == u[2][I]) ? -1 : (0 == q[2][I]) > (0 == u[2][I]) ? 1 : 0) || (q[2] < u[2] ? -
						1 : q[2] > u[2] ? 1 : 0)
				} while (0 == c)
			}
			return c
		}

		function Gp(a) {
			var b = ea(a);
			return 0 == b && /^[\s\xa0]*$/ [Za](a) ? NaN : b
		}
		var Hp = {};

		function Ip(a) {
			return Hp[a] || (Hp[a] = (S + a)[bb](/\-([a-z])/g, function(a, c) {
				return c.toUpperCase()
			}))
		};

		function Jp(a) {
			return a[a[I] - 1]
		}
		var Kp = ma[K],
			Lp = Kp[sb] ? function(a, b, c) {
				return Kp[sb][N](a, b, c)
			} : function(a, b, c) {
				c = c == l ? 0 : 0 > c ? s.max(0, a[I] + c) : c;
				if (np(a)) return !np(b) || 1 != b[I] ? -1 : a[sb](b, c);
				for (; c < a[I]; c++)
					if (c in a && a[c] === b) return c;
				return -1
			},
			Mp = Kp.forEach ? function(a, b, c) {
				Kp.forEach[N](a, b, c)
			} : function(a, b, c) {
				for (var d = a[I], e = np(a) ? a[qc](S) : a, f = 0; f < d; f++) f in e && b[N](c, e[f], f, a)
			},
			Np = Kp.filter ? function(a, b, c) {
				return Kp.filter[N](a, b, c)
			} : function(a, b, c) {
				for (var d = a[I], e = [], f = 0, g = np(a) ? a[qc](S) : a, i = 0; i < d; i++)
					if (i in g) {
						var j = g[i];
						b[N](c, j, i, a) && (e[f++] = j)
					} return e
			},
			Op = Kp.map ? function(a, b, c) {
				return Kp.map[N](a, b, c)
			} : function(a, b, c) {
				for (var d = a[I], e = ma(d), f = np(a) ? a[qc](S) : a, g = 0; g < d; g++) g in f && (e[g] = b[
					N](c, f[g], g, a));
				return e
			};

		function Pp(a, b, c, d) {
			if (a.reduce) return d ? a.reduce(Z(b, d), c) : a.reduce(b, c);
			var e = c;
			Mp(a, function(c, g) {
				e = b[N](d, e, c, g, a)
			});
			return e
		}
		var Qp = Kp[Sc] ? function(a, b, c) {
			return Kp[Sc][N](a, b, c)
		} : function(a, b, c) {
			for (var d = a[I], e = np(a) ? a[qc](S) : a, f = 0; f < d; f++)
				if (f in e && !b[N](c, e[f], f, a)) return n;
			return k
		};

		function Rp(a, b, c) {
			b = Tp(a, b, c);
			return 0 > b ? l : np(a) ? a[ib](b) : a[b]
		}

		function Tp(a, b, c) {
			for (var d = a[I], e = np(a) ? a[qc](S) : a, f = 0; f < d; f++)
				if (f in e && b[N](c, e[f], f, a)) return f;
			return -1
		}

		function Up(a, b, c) {
			a: {
				for (var d = np(a) ? a[qc](S) : a, e = a[I] - 1; 0 <= e; e--)
					if (e in d && b[N](c, d[e], e, a)) {
						b = e;
						break a
					} b = -1
			}
			return 0 > b ? l : np(a) ? a[ib](b) : a[b]
		}

		function Vp(a) {
			if (!jp(a))
				for (var b = a[I] - 1; 0 <= b; b--) delete a[b];
			Ga(a, 0)
		}

		function Wp(a, b) {
			var c = Lp(a, b),
				d;
			(d = 0 <= c) && Kp[bd][N](a, c, 1);
			return d
		}

		function Xp(a) {
			return Kp[hb][Uc](Kp, arguments)
		}

		function Yp(a) {
			if (jp(a)) return Xp(a);
			for (var b = [], c = 0, d = a[I]; c < d; c++) b[c] = a[c];
			return b
		}

		function Zp(a, b) {
			for (var c = 1; c < arguments[I]; c++) {
				var d = arguments[c],
					e;
				if (jp(d) || (e = kp(d)) && d[yc](uh)) a[v][Uc](a, d);
				else if (e)
					for (var f = a[I], g = d[I], i = 0; i < g; i++) a[f + i] = d[i];
				else a[v](d)
			}
		}

		function $p(a, b, c) {
			return 2 >= arguments[I] ? Kp[ab][N](a, b) : Kp[ab][N](a, b, c)
		}

		function aq(a, b) {
			for (var c = b || a, d = {}, e = 0, f = 0; f < a[I];) {
				var g = a[f++],
					i = mp(g) ? hl + qp(g) : (typeof g)[ib](0) + g;
				fa[K][yc][N](d, i) || (d[i] = k, c[e++] = g)
			}
			Ga(c, e)
		}

		function bq(a, b) {
			Kp.sort[N](a, b || cq)
		}

		function dq(a, b) {
			for (var c = 0; c < a[I]; c++) a[c] = {
				index: c,
				value: a[c]
			};
			var d = b || cq;
			bq(a, function(a, b) {
				return d(a[nb], b[nb]) || a[ic] - b[ic]
			});
			for (c = 0; c < a[I]; c++) a[c] = a[c][nb]
		}

		function eq(a, b, c) {
			if (!kp(a) || !kp(b) || a[I] != b[I]) return n;
			for (var d = a[I], c = c || fq, e = 0; e < d; e++)
				if (!c(a[e], b[e])) return n;
			return k
		}

		function cq(a, b) {
			return a > b ? 1 : a < b ? -1 : 0
		}

		function fq(a, b) {
			return a === b
		}

		function gq(a, b) {
			for (var c = [], d = 0; d < b; d++) c[d] = a;
			return c
		}

		function hq(a) {
			if (!arguments[I]) return [];
			for (var b = [], c = 0;; c++) {
				for (var d = [], e = 0; e < arguments[I]; e++) {
					var f = arguments[e];
					if (c >= f[I]) return b;
					d[v](f[c])
				}
				b[v](d)
			}
		};

		function $(a, b) {
			this.x = hp(a) ? a : 0;
			this.y = hp(b) ? b : 0
		}
		Oa($[K], function() {
			return new $(this.x, this.y)
		});

		function iq(a, b) {
			return a == b ? k : !a || !b ? n : a.x == b.x && a.y == b.y
		}

		function jq(a, b) {
			return new $(a.x - b.x, a.y - b.y)
		}

		function kq(a, b) {
			return new $(a.x + b.x, a.y + b.y)
		};

		function lq(a, b) {
			oa(this, a);
			Ua(this, b)
		}
		V = lq[K];
		Oa(V, function() {
			return new lq(this[w], this[Q])
		});
		V.pb = function() {
			return this[w] * this[Q]
		};
		sa(V, function() {
			oa(this, s[db](this[w]));
			Ua(this, s[db](this[Q]));
			return this
		});
		ta(V, function() {
			oa(this, s[B](this[w]));
			Ua(this, s[B](this[Q]));
			return this
		});
		qa(V, function() {
			oa(this, s[z](this[w]));
			Ua(this, s[z](this[Q]));
			return this
		});
		V.scale = function(a) {
			oa(this, this[w] * a);
			Ua(this, this[Q] * a);
			return this
		};

		function mq(a, b, c) {
			for (var d in a) b[N](c, a[d], d, a)
		}

		function nq(a, b, c) {
			var d = {},
				e;
			for (e in a) d[e] = b[N](c, a[e], e, a);
			return d
		}

		function oq(a, b, c) {
			for (var d in a)
				if (!b[N](c, a[d], d, a)) return n;
			return k
		}

		function pq(a) {
			var b = [],
				c = 0,
				d;
			for (d in a) b[c++] = a[d];
			return b
		}

		function qq(a) {
			var b = [],
				c = 0,
				d;
			for (d in a) b[c++] = d;
			return b
		}

		function rq(a, b) {
			for (var c in a)
				if (a[c] == b) return k;
			return n
		}

		function sq(a) {
			var b = {},
				c;
			for (c in a) b[c] = a[c];
			return b
		}

		function tq(a) {
			var b = gp(a);
			if (b == il || b == Fg) {
				if (a[Dc]) return a[Dc]();
				var b = b == Fg ? [] : {},
					c;
				for (c in a) b[c] = tq(a[c]);
				return b
			}
			return a
		}
		var uq = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf"
			.split(",");

		function vq(a, b) {
			for (var c, d, e = 1; e < arguments[I]; e++) {
				d = arguments[e];
				for (c in d) a[c] = d[c];
				for (var f = 0; f < uq[I]; f++) c = uq[f], fa[K][yc][N](d, c) && (a[c] = d[c])
			}
		};
		var wq, xq, yq, zq, Aq, Bq;

		function Cq() {
			return dp.navigator ? dp.navigator.userAgent : l
		}

		function Dq() {
			return dp.navigator
		}
		Aq = zq = yq = xq = wq = n;
		var Eq;
		if (Eq = Cq()) {
			var Fq = Dq();
			wq = 0 == Eq[sb]("Opera");
			xq = !wq && -1 != Eq[sb]("MSIE");
			zq = (yq = !wq && -1 != Eq[sb]("WebKit")) && -1 != Eq[sb]("Mobile");
			Aq = !wq && !yq && "Gecko" == Fq.product
		}
		var Gq = wq,
			Hq = xq,
			Iq = Aq,
			Jq = yq,
			Kq = zq,
			Lq = Dq();
		Bq = -1 != (Lq && Lq.platform || S)[sb]("Mac");
		var Mq = !!Dq() && -1 != (Dq().appVersion || S)[sb]("X11"),
			Nq;
		a: {
			var Oq = S,
				Pq;
			if (Gq && dp.opera) var Qq = dp.opera.version,
				Oq = typeof Qq == T ? Qq() : Qq;
			else if (Iq ? Pq = /rv\:([^\);]+)(\)|;)/ : Hq ? Pq = /MSIE\s+([^\);]+)(\)|;)/ : Jq && (Pq =
					/WebKit\/(\S+)/), Pq) var Rq = Pq.exec(Cq()),
				Oq = Rq ? Rq[1] : S;
			if (Hq) {
				var Sq, Tq = dp[nc];
				Sq = Tq ? Tq[Pc] : ba;
				if (Sq > ha(Oq)) {
					Nq = S + Sq;
					break a
				}
			}
			Nq = Oq
		}
		var Uq = Nq,
			Vq = {};

		function Wq(a) {
			return Vq[a] || (Vq[a] = 0 <= Fp(Uq, a))
		}
		var Xq = {};

		function Yq(a) {
			return Xq[a] || (Xq[a] = Hq && ja[Pc] && ja[Pc] >= a)
		};
		var Zq, $q = !Hq || Yq(9);
		!Iq && !Hq || Hq && Yq(9) || Iq && Wq("1.9.1");
		Hq && Wq(Ve);

		function ar(a, b) {
			var c;
			c = (c = a.className) && typeof c[qc] == T ? c[qc](/\s+/) : [];
			var d = $p(arguments, 1),
				e;
			e = c;
			for (var f = 0, g = 0; g < d[I]; g++) 0 <= Lp(e, d[g]) || (e[v](d[g]), f++);
			e = f == d[I];
			Ka(a, c[cd](id));
			return e
		};

		function br(a) {
			return a ? new cr(dr(a)) : Zq || (Zq = new cr)
		}

		function er(a, b) {
			mq(b, function(b, d) {
				d == vn ? a[zc].cssText = b : d == Qh ? Ka(a, b) : d == ej ? a.htmlFor = b : d in fr ?
					a[E](fr[d], b) : 0 == d[Jc](Eg, 0) ? a[E](d, b) : a[d] = b
			})
		}
		var fr = {
			cellpadding: "cellPadding",
			cellspacing: "cellSpacing",
			colspan: "colSpan",
			rowspan: "rowSpan",
			valign: "vAlign",
			height: Bj,
			width: To,
			usemap: "useMap",
			frameborder: "frameBorder",
			maxlength: "maxLength",
			type: po
		};

		function gr(a, b, c) {
			return hr(ja, arguments)
		}

		function hr(a, b) {
			var c = b[0],
				d = b[1];
			if (!$q && d && (d[Sb] || d[F])) {
				c = [Ze, c];
				d[Sb] && c[v](od, zp(d[Sb]), td);
				if (d[F]) {
					c[v](qd, zp(d[F]), td);
					var e = {};
					vq(e, d);
					d = e;
					delete d[F]
				}
				c[v](mf);
				c = c[cd](S)
			}
			c = a[Bb](c);
			d && (np(d) ? Ka(c, d) : jp(d) ? ar[Uc](l, [c][hb](d)) : er(c, d));
			2 < b[I] && ir(a, c, b, 2);
			return c
		}

		function ir(a, b, c, d) {
			function e(c) {
				c && b[t](np(c) ? a[lb](c) : c)
			}
			for (; d < c[I]; d++) {
				var f = c[d];
				kp(f) && !(mp(f) && 0 < f[cb]) ? Mp(jr(f) ? Yp(f) : f, e) : e(f)
			}
		}

		function kr(a) {
			return a.compatMode == uf
		}

		function lr(a) {
			for (var b; b = a[Gb];) a[Cc](b)
		}

		function mr(a) {
			return a && a[Zc] ? a[Zc][Cc](a) : l
		}

		function nr(a, b) {
			if (a[Tc] && 1 == b[cb]) return a == b || a[Tc](b);
			if ("undefined" != typeof a.compareDocumentPosition) return a == b || Boolean(a
				.compareDocumentPosition(b) & 16);
			for (; b && a != b;) b = b[Zc];
			return b == a
		}

		function dr(a) {
			return 9 == a[cb] ? a : a.ownerDocument || a[nc]
		}

		function jr(a) {
			if (a && typeof a[I] == gl) {
				if (mp(a)) return typeof a[pb] == T || typeof a[pb] == pn;
				if (pp(a)) return typeof a[pb] == T
			}
			return n
		}

		function or(a, b, c, d) {
			c || (a = a[Zc]);
			for (var c = d == l, e = 0; a && (c || e <= d);) {
				if (b(a)) return a;
				a = a[Zc];
				e++
			}
			return l
		}

		function cr(a) {
			this.nb = a || dp[nc] || ja
		}
		V = cr[K];
		V.q = function(a) {
			return np(a) ? this.nb[gb](a) : a
		};
		V.xw = function(a) {
			var a = a || this.Ip() || da,
				b = a[nc];
			if (Jq && !Wq(Re) && !Kq) {
				"undefined" == typeof a.innerHeight && (a = da);
				var b = a.innerHeight,
					c = a[nc][Yb].scrollHeight;
				a == a.top && c < b && (b -= 15);
				a = new lq(a.innerWidth, b)
			} else a = kr(b) ? b[Yb] : b[Bc], a = new lq(a[kc], a[Mc]);
			return a
		};
		V.ep = function(a, b, c) {
			return hr(this.nb, arguments)
		};
		V.createElement = function(a) {
			return this.nb[Bb](a)
		};
		V.createTextNode = function(a) {
			return this.nb[lb](a)
		};
		V.Kl = function() {
			return kr(this.nb)
		};
		V.Ip = function() {
			return this.nb[Ob] || this.nb[Rb]
		};
		V.ww = function() {
			return !Jq && kr(this.nb) ? this.nb[Yb] : this.nb[Bc]
		};
		V.Oi = function() {
			var a = this.nb,
				b = !Jq && kr(a) ? a[Yb] : a[Bc],
				a = a[Ob] || a[Rb];
			return new $(a.pageXOffset || b[Nc], a.pageYOffset || b[$b])
		};
		V.appendChild = function(a, b) {
			a[t](b)
		};
		V.Ng = lr;
		V.removeNode = mr;
		Sa(V, nr);

		function pr(a, b, c) {
			return s.min(s.max(a, b), c)
		}

		function qr(a, b) {
			var c = a % b;
			return 0 > c * b ? c + b : c
		}

		function rr(a) {
			return qr(a, 360)
		}

		function sr(a) {
			return a * s.PI / 180
		}

		function tr(a) {
			return Pp(arguments, function(a, c) {
				return a + c
			}, 0)
		}

		function ur(a) {
			return tr[Uc](l, arguments) / arguments[I]
		};

		function vr(a, b, c, d) {
			this.Of = a;
			this.Pf = b;
			this.Cb = c;
			this.Db = d
		}
		V = vr[K];
		Oa(V, function() {
			return new vr(this.Of, this.Pf, this.Cb, this.Db)
		});
		V.Od = function(a) {
			return this.Of == a.Of && this.Pf == a.Pf && this.Cb == a.Cb && this.Db == a.Db
		};
		V.qx = function() {
			var a = this.Cb - this.Of,
				b = this.Db - this.Pf;
			return a * a + b * b
		};
		V.ax = function() {
			return s[Ib](this.qx())
		};
		V.Ep = function(a) {
			return new $(this.Of + a * (this.Cb - this.Of), this.Pf + a * (this.Db - this.Pf))
		};

		function wr(a, b) {
			this.x = a;
			this.y = b
		}
		xp(wr, $);
		V = wr[K];
		Oa(V, function() {
			return new wr(this.x, this.y)
		});
		V.Aq = function() {
			return s[Ib](this.x * this.x + this.y * this.y)
		};
		V.Tr = function() {
			return this.x * this.x + this.y * this.y
		};
		V.scale = function(a) {
			this.x *= a;
			this.y *= a;
			return this
		};
		V.add = function(a) {
			this.x += a.x;
			this.y += a.y;
			return this
		};
		V.pq = function(a) {
			this.x -= a.x;
			this.y -= a.y;
			return this
		};
		V.rotate = function(a) {
			var b = s.cos(a),
				a = s.sin(a),
				c = this.y * b + this.x * a;
			this.x = this.x * b - this.y * a;
			this.y = c;
			return this
		};
		V.Od = function(a) {
			return this == a || !!a && this.x == a.x && this.y == a.y
		};

		function xr(a, b) {
			return new wr(a.x + b.x, a.y + b.y)
		}

		function yr(a, b) {
			return new wr(a.x - b.x, a.y - b.y)
		};

		function zr() {}
		zr[K].iq = n;
		zr[K].cc = function() {
			if (!this.iq) this.iq = k, this.lb()
		};
		zr[K].lb = function() {
			this.nx && Ar[Uc](l, this.nx)
		};

		function Br(a) {
			a && typeof a.cc == T && a.cc()
		}

		function Ar(a) {
			for (var b = 0, c = arguments[I]; b < c; ++b) {
				var d = arguments[b];
				kp(d) ? Ar[Uc](l, d) : Br(d)
			}
		};

		function Cr(a) {
			Cr[id](a);
			return a
		}
		Cr[id] = fp;
		var Dr = !Hq || Yq(9),
			Er = !Hq || Yq(9),
			Fr = Hq && !Wq(Ue);
		!Jq || Wq("528");
		Iq && Wq("1.9b") || Hq && Wq(Ue) || Gq && Wq("9.5") || Jq && Wq("528");
		!Iq || Wq(Ue);

		function Gr(a, b) {
			Aa(this, a);
			Pa(this, b);
			wa(this, this[Ec])
		}
		xp(Gr, zr);
		V = Gr[K];
		V.lb = function() {
			delete this[F];
			delete this[Ec];
			delete this.currentTarget
		};
		V.Ge = n;
		V.jh = k;
		V.stopPropagation = function() {
			this.Ge = k
		};
		V.preventDefault = function() {
			this.jh = n
		};

		function Hr(a) {
			a[ob]()
		};

		function Ir(a, b) {
			a && this.oc(a, b)
		}
		xp(Ir, Gr);
		var Jr = [1, 4, 2];
		V = Ir[K];
		Pa(V, l);
		V.relatedTarget = l;
		V.offsetX = 0;
		V.offsetY = 0;
		V.clientX = 0;
		V.clientY = 0;
		V.screenX = 0;
		V.screenY = 0;
		V.button = 0;
		za(V, 0);
		V.charCode = 0;
		V.ctrlKey = n;
		V.altKey = n;
		V.shiftKey = n;
		V.metaKey = n;
		V.iw = n;
		V.Fc = l;
		V.oc = function(a, b) {
			var c = Aa(this, a[F]);
			Gr[N](this, c);
			Pa(this, a[Ec] || a.srcElement);
			wa(this, b);
			var d = a[$a];
			if (d) {
				if (Iq) {
					var e;
					a: {
						try {
							Cr(d.nodeName);
							e = k;
							break a
						} catch (f) {}
						e = n
					}
					e || (d = l)
				}
			} else if (c == Xk) d = a.fromElement;
			else if (c == Wk) d = a.toElement;
			this.relatedTarget = d;
			this.offsetX = Jq || a.offsetX !== ba ? a.offsetX : a.layerX;
			this.offsetY = Jq || a.offsetY !== ba ? a.offsetY : a.layerY;
			this.clientX = a[Wb] !== ba ? a[Wb] : a.pageX;
			this.clientY = a[Xb] !== ba ? a[Xb] : a.pageY;
			this.screenX = a[xb] || 0;
			this.screenY = a[yb] || 0;
			this.button = a.button;
			za(this, a[Eb] || 0);
			this.charCode = a.charCode || (c == dk ? a[Eb] : 0);
			this.ctrlKey = a[pc];
			this.altKey = a.altKey;
			this.shiftKey = a.shiftKey;
			this.metaKey = a.metaKey;
			this.iw = Bq ? a.metaKey : a[pc];
			this.state = a.state;
			this.Fc = a;
			delete this.jh;
			delete this.Ge
		};
		V.sx = function(a) {
			return Dr ? this.Fc.button == a : this[F] == Rh ? 0 == a : !!(this.Fc.button & Jr[a])
		};
		V.lp = function() {
			return this.sx(0) && !(Jq && Bq && this[pc])
		};
		V.stopPropagation = function() {
			Ir.Pb[tc][N](this);
			this.Fc[tc] ? this.Fc[tc]() : this.Fc.cancelBubble = k
		};
		V.preventDefault = function() {
			Ir.Pb[ob][N](this);
			var a = this.Fc;
			if (a[ob]) a[ob]();
			else if (a.returnValue = n, Fr) try {
				(a[pc] || 112 <= a[Eb] && 123 >= a[Eb]) && za(a, -1)
			} catch (b) {}
		};
		V.Uv = function() {
			return this.Fc
		};
		V.lb = function() {
			Ir.Pb.lb[N](this);
			this.Fc = l;
			Pa(this, l);
			wa(this, l);
			this.relatedTarget = l
		};

		function Kr() {}
		var Lr = 0;
		V = Kr[K];
		V.key = 0;
		V.Lf = n;
		V.Sl = n;
		V.oc = function(a, b, c, d, e, f) {
			pp(a) ? this.Yp = k : a && a[Lb] && pp(a[Lb]) ? this.Yp = n : h(r(Ff));
			this.hh = a;
			this.yp = b;
			this.src = c;
			Aa(this, d);
			this.capture = !!e;
			this.Al = f;
			this.Sl = n;
			this.key = ++Lr;
			this.Lf = n
		};
		V.handleEvent = function(a) {
			return this.Yp ? this.hh[N](this.Al || this.src, a) : this.hh[Lb][N](this.hh, a)
		};
		var Mr = {},
			Nr = {},
			Or = {},
			Pr = {};

		function Qr(a, b, c, d, e) {
			if (b) {
				if (jp(b)) {
					for (var f = 0; f < b[I]; f++) Qr(a, b[f], c, d, e);
					return l
				}
				var d = !!d,
					g = Nr;
				b in g || (g[b] = {
					Ua: 0,
					rc: 0
				});
				g = g[b];
				d in g || (g[d] = {
					Ua: 0,
					rc: 0
				}, g.Ua++);
				var g = g[d],
					i = qp(a),
					j;
				g.rc++;
				if (g[i]) {
					j = g[i];
					for (f = 0; f < j[I]; f++)
						if (g = j[f], g.hh == c && g.Al == e) {
							if (g.Lf) break;
							return j[f].key
						}
				} else j = g[i] = [], g.Ua++;
				f = Rr();
				f.src = a;
				g = new Kr;
				g.oc(c, f, a, b, d, e);
				c = g.key;
				f.key = c;
				j[v](g);
				Mr[c] = g;
				Or[i] || (Or[i] = []);
				Or[i][v](g);
				a.addEventListener ? (a == dp || !a.np) && a.addEventListener(b, f, d) : a.attachEvent(b in Pr ?
					Pr[b] : Pr[b] = kl + b, f);
				return c
			}
			h(r("Invalid event type"))
		}

		function Rr() {
			var a = Sr,
				b = Er ? function(c) {
					return a[N](b.src, b.key, c)
				} : function(c) {
					c = a[N](b.src, b.key, c);
					if (!c) return c
				};
			return b
		}

		function Tr(a, b, c, d, e) {
			if (jp(b)) {
				for (var f = 0; f < b[I]; f++) Tr(a, b[f], c, d, e);
				return l
			}
			a = Qr(a, b, c, d, e);
			Mr[a].Sl = k;
			return a
		}

		function Ur(a, b, c, d, e) {
			if (jp(b)) {
				for (var f = 0; f < b[I]; f++) Ur(a, b[f], c, d, e);
				return l
			}
			d = !!d;
			a: {
				f = Nr;
				if (b in f && (f = f[b], d in f && (f = f[d], a = qp(a), f[a]))) {
					a = f[a];
					break a
				}
				a = l
			}
			if (!a) return n;
			for (f = 0; f < a[I]; f++)
				if (a[f].hh == c && a[f][vb] == d && a[f].Al == e) return Vr(a[f].key);
			return n
		}

		function Vr(a) {
			if (!Mr[a]) return n;
			var b = Mr[a];
			if (b.Lf) return n;
			var c = b.src,
				d = b[F],
				e = b.yp,
				f = b[vb];
			c.removeEventListener ? (c == dp || !c.np) && c.removeEventListener(d, e, f) : c.detachEvent && c
				.detachEvent(d in Pr ? Pr[d] : Pr[d] = kl + d, e);
			c = qp(c);
			e = Nr[d][f][c];
			if (Or[c]) {
				var g = Or[c];
				Wp(g, b);
				0 == g[I] && delete Or[c]
			}
			b.Lf = k;
			e.Mp = k;
			Wr(d, f, c, e);
			delete Mr[a];
			return k
		}

		function Wr(a, b, c, d) {
			if (!d.Qi && d.Mp) {
				for (var e = 0, f = 0; e < d[I]; e++) d[e].Lf ? d[e].yp.src = l : (e != f && (d[f] = d[e]),
				f++);
				Ga(d, f);
				d.Mp = n;
				0 == f && (delete Nr[a][b][c], Nr[a][b].Ua--, 0 == Nr[a][b].Ua && (delete Nr[a][b], Nr[a].Ua--),
					0 == Nr[a].Ua && delete Nr[a])
			}
		}

		function Xr(a, b, c) {
			var d = 0,
				e = b == l,
				f = c == l,
				c = !!c;
			if (a == l) mq(Or, function(a) {
				for (var g = a[I] - 1; 0 <= g; g--) {
					var i = a[g];
					if ((e || b == i[F]) && (f || c == i[vb])) Vr(i.key), d++
				}
			});
			else if (a = qp(a), Or[a])
				for (var a = Or[a], g = a[I] - 1; 0 <= g; g--) {
					var i = a[g];
					if ((e || b == i[F]) && (f || c == i[vb])) Vr(i.key), d++
				}
			return d
		}

		function Yr(a, b, c, d, e) {
			var f = 1,
				b = qp(b);
			if (a[b]) {
				a.rc--;
				a = a[b];
				a.Qi ? a.Qi++ : a.Qi = 1;
				try {
					for (var g = a[I], i = 0; i < g; i++) {
						var j = a[i];
						j && !j.Lf && (f &= Zr(j, e) !== n)
					}
				} finally {
					a.Qi--, Wr(c, d, b, a)
				}
			}
			return Boolean(f)
		}

		function Zr(a, b) {
			var c = a[Lb](b);
			a.Sl && Vr(a.key);
			return c
		}

		function Sr(a, b) {
			if (!Mr[a]) return k;
			var c = Mr[a],
				d = c[F],
				e = Nr;
			if (!(d in e)) return k;
			var e = e[d],
				f, g;
			if (!Er) {
				f = b || ep(Uo);
				var i = k in e,
					j = n in e;
				if (i) {
					if (0 > f[Eb] || f.returnValue != ba) return k;
					a: {
						var m = n;
						if (0 == f[Eb]) try {
							za(f, -1);
							break a
						} catch (o) {
							m = k
						}
						if (m || f.returnValue == ba) f.returnValue = k
					}
				}
				m = new Ir;
				m.oc(f, this);
				f = k;
				try {
					if (i) {
						for (var q = [], u = m.currentTarget; u; u = u[Zc]) q[v](u);
						g = e[k];
						g.rc = g.Ua;
						for (var y = q[I] - 1; !m.Ge && 0 <= y && g.rc; y--) wa(m, q[y]), f &= Yr(g, q[y], d, k,
							m);
						if (j) {
							g = e[n];
							g.rc = g.Ua;
							for (y = 0; !m.Ge && y < q[I] && g.rc; y++) wa(m,
								q[y]), f &= Yr(g, q[y], d, n, m)
						}
					} else f = Zr(c, m)
				} finally {
					q && Ga(q, 0), m.cc()
				}
				return f
			}
			d = new Ir(b, this);
			try {
				f = Zr(c, d)
			} finally {
				d.cc()
			}
			return f
		};

		function $r(a) {
			this.Dc = a;
			this.wa = []
		}
		xp($r, zr);
		var as = [];
		$r[K].If = function(a, b, c, d, e) {
			jp(b) || (as[0] = b, b = as);
			for (var f = 0; f < b[I]; f++) this.wa[v](Qr(a, b[f], c || this, d || n, e || this.Dc || this));
			return this
		};
		$r[K].removeAll = function() {
			Mp(this.wa, Vr);
			Ga(this.wa, 0)
		};
		$r[K].lb = function() {
			$r.Pb.lb[N](this);
			this[Ic]()
		};
		$r[K].handleEvent = function() {
			h(r("EventHandler.handleEvent not implemented"))
		};

		function bs(a) {
			a = S + a;
			if (/^\s*$/ [Za](a) ? 0 : /^[\],:{}\s\u2028\u2029]*$/ [Za](a[bb](/\\["\\\/bfnrtu]/g, nf)[bb](
					/"[^"\\\n\r\u2028\u2029\x00-\x08\x10-\x1f\x80-\x9f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
					hg)[bb](/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g, S))) try {
				return eval(de + a + fe)
			} catch (b) {}
			h(r("Invalid JSON string: " + a))
		}

		function cs(a) {
			this.Xi = a
		}
		cs[K].Gu = function(a) {
			var b = [];
			this.Zl(a, b);
			return b[cd](S)
		};
		cs[K].Zl = function(a, b) {
			switch (typeof a) {
				case pn:
					this.gq(a, b);
					break;
				case gl:
					this.Vw(a, b);
					break;
				case Yg:
					b[v](a);
					break;
				case "undefined":
					b[v](fl);
					break;
				case il:
					if (a == l) {
						b[v](fl);
						break
					}
					if (jp(a)) {
						this.Uw(a, b);
						break
					}
					this.Ww(a, b);
					break;
				case T:
					break;
				default:
					h(r("Unknown type: " + typeof a))
			}
		};
		var ds = {
				'"': '\\"',
				"\\": "\\\\",
				"/": "\\/",
				"\u0008": "\\b",
				"\u000c": "\\f",
				"\n": "\\n",
				"\r": "\\r",
				"\t": "\\t",
				"\u000b": "\\u000b"
			},
			es = /\uffff/ [Za]("\uffff") ? /[\\\"\x00-\x1f\x7f-\uffff]/g : /[\\\"\x00-\x1f\x7f-\xff]/g;
		cs[K].gq = function(a, b) {
			b[v](td, a[bb](es, function(a) {
				if (a in ds) return ds[a];
				var b = a.charCodeAt(0),
					e = gg;
				16 > b ? e += Fe : 256 > b ? e += Ee : 4096 > b && (e += Ae);
				return ds[a] = e + b[ac](16)
			}), td)
		};
		cs[K].Vw = function(a, b) {
			b[v](ia(a) && !ka(a) ? a : fl)
		};
		cs[K].Uw = function(a, b) {
			var c = a[I];
			b[v](cg);
			for (var d = S, e = 0; e < c; e++) b[v](d), d = a[e], this.Zl(this.Xi ? this.Xi[N](a, S + e,
				d) : d, b), d = ge;
			b[v](hg)
		};
		cs[K].Ww = function(a, b) {
			b[v](bp);
			var c = S,
				d;
			for (d in a)
				if (fa[K][yc][N](a, d)) {
					var e = a[d];
					typeof e != T && (b[v](c), this.gq(d, b), b[v](Ye), this.Zl(this.Xi ? this.Xi[N](a, d,
						e) : e, b), c = ge)
				} b[v](cp)
		};

		function fs(a, b) {
			var c = qp(a),
				d = b || gs;
			return function() {
				var b = this || dp,
					b = b.closure_memoize_cache_ || (b.closure_memoize_cache_ = {}),
					f = d(c, arguments);
				return b[yc](f) ? b[f] : b[f] = a[Uc](this, arguments)
			}
		}

		function gs(a, b) {
			for (var c = [a], d = b[I] - 1; 0 <= d; --d) c[v](typeof b[d], b[d]);
			return c[cd](hd)
		};

		function hs(a, b, c, d) {
			this.top = a;
			Va(this, b);
			Ra(this, c);
			xa(this, d)
		}
		Oa(hs[K], function() {
			return new hs(this.top, this[R], this[P], this[C])
		});
		Sa(hs[K], function(a) {
			return !this || !a ? n : a instanceof hs ? a[C] >= this[C] && a[R] <= this[R] && a.top >=
				this.top && a[P] <= this[P] : a.x >= this[C] && a.x <= this[R] && a.y >= this.top && a
				.y <= this[P]
		});
		hs[K].Gn = function(a) {
			xa(this, s.min(this[C], a[C]));
			this.top = s.min(this.top, a.top);
			Va(this, s.max(this[R], a[R]));
			Ra(this, s.max(this[P], a[P]))
		};

		function is(a, b) {
			return a[C] <= b[R] && b[C] <= a[R] && a.top <= b[P] && b.top <= a[P]
		};

		function js(a, b, c, d) {
			xa(this, a);
			this.top = b;
			oa(this, c);
			Ua(this, d)
		}
		Oa(js[K], function() {
			return new js(this[C], this.top, this[w], this[Q])
		});
		js[K].Jp = function(a) {
			var b = s.max(this[C], a[C]),
				c = s.min(this[C] + this[w], a[C] + a[w]);
			if (b <= c) {
				var d = s.max(this.top, a.top),
					a = s.min(this.top + this[Q], a.top + a[Q]);
				if (d <= a) return xa(this, b), this.top = d, oa(this, c - b), Ua(this, a - d), k
			}
			return n
		};
		Sa(js[K], function(a) {
			return a instanceof js ? this[C] <= a[C] && this[C] + this[w] >= a[C] + a[w] && this.top <=
				a.top && this.top + this[Q] >= a.top + a[Q] : a.x >= this[C] && a.x <= this[C] + this[
				w] && a.y >= this.top && a.y <= this.top + this[Q]
		});

		function ks(a, b, c) {
			np(b) ? ls(a, c, b) : mq(b, vp(ls, a))
		}

		function ls(a, b, c) {
			a[zc][Ip(c)] = b
		}

		function ms(a, b) {
			var c = dr(a);
			return c[Rb] && c[Rb].getComputedStyle && (c = c[Rb].getComputedStyle(a, l)) ? c[b] || c
				.getPropertyValue(b) : S
		}

		function ns(a, b) {
			return ms(a, b) || (a[Oc] ? a[Oc][b] : l) || a[zc] && a[zc][b]
		}

		function os(a) {
			a = a ? 9 == a[cb] ? a : dr(a) : ja;
			return Hq && !Yq(9) && !br(a).Kl() ? a[Bc] : a[Yb]
		}

		function ps(a) {
			var b = a[Ya]();
			if (Hq) a = a.ownerDocument, xa(b, b[C] - (a[Yb][Hb] + a[Bc][Hb])), b.top -= a[Yb][Kb] + a[Bc][Kb];
			return b
		}

		function qs(a) {
			if (Hq && !Yq(8)) return a.offsetParent;
			for (var b = dr(a), c = ns(a, Pl), d = c == Vi || c == lg, a = a[Zc]; a && a != b; a = a[Zc])
				if (c = ns(a, Pl), d = d && c == gn && a != b[Yb] && a != b[Bc], !d && (a.scrollWidth > a[kc] ||
						a.scrollHeight > a[Mc] || c == Vi || c == lg || c == am)) return a;
			return l
		}

		function rs(a) {
			for (var b = new hs(0, p, p, 0), c = br(a), d = c.nb[Bc], e = c.nb[Yb], f = c.ww(); a = qs(a);)
				if ((!Hq || 0 != a[kc]) && (!Jq || 0 != a[Mc] || a != d) && a != d && a != e && ns(a, sl) !=
					Po) {
					var g = ss(a),
						i;
					i = a;
					if (Iq && !Wq(Je)) {
						var j = ha(ms(i, dh));
						if (ts(i)) var m = i.offsetWidth - i[kc] - j - ha(ms(i, fh)),
							j = j + m;
						i = new $(j, ha(ms(i, hh)))
					} else i = new $(i[Hb], i[Kb]);
					g.x += i.x;
					g.y += i.y;
					b.top = s.max(b.top, g.y);
					Va(b, s.min(b[R], g.x + a[kc]));
					Ra(b, s.min(b[P], g.y + a[Mc]));
					xa(b, s.max(b[C], g.x))
				} d = f[Nc];
			f = f[$b];
			xa(b, s.max(b[C], d));
			b.top = s.max(b.top, f);
			c = c.xw();
			Va(b, s.min(b[R], d + c[w]));
			Ra(b, s.min(b[P], f + c[Q]));
			return 0 <= b.top && 0 <= b[C] && b[P] > b.top && b[R] > b[C] ? b : l
		}

		function ss(a) {
			var b, c = dr(a),
				d = ns(a, Pl),
				e = Iq && c[Ab] && !a[Ya] && d == lg && (b = c[Ab](a)) && (0 > b[xb] || 0 > b[yb]),
				f = new $(0, 0),
				g = os(c);
			if (a == g) return f;
			if (a[Ya]) b = ps(a), a = br(c).Oi(), f.x = b[C] + a.x, f.y = b.top + a.y;
			else if (c[Ab] && !e) b = c[Ab](a), a = c[Ab](g), f.x = b[xb] - a[xb], f.y = b[yb] - a[yb];
			else {
				b = a;
				do {
					f.x += b.offsetLeft;
					f.y += b.offsetTop;
					b != a && (f.x += b[Hb] || 0, f.y += b[Kb] || 0);
					if (Jq && ns(b, Pl) == Vi) {
						f.x += c[Bc][Nc];
						f.y += c[Bc][$b];
						break
					}
					b = b.offsetParent
				} while (b && b != a);
				if (Gq || Jq && d == lg) f.y -= c[Bc].offsetTop;
				for (b = a;
					(b = qs(b)) && b != c[Bc] &&
					b != g;)
					if (f.x -= b[Nc], !Gq || b[Vc] != Wf) f.y -= b[$b]
			}
			return f
		}

		function us(a, b) {
			typeof a == gl && (a = (b ? s[z](a) : a) + Ul);
			return a
		}

		function vs(a) {
			if (ns(a, Bi) != U) return ws(a);
			var b = a[zc],
				c = b.display,
				d = b.visibility,
				e = b[fc];
			Fa(b, Dj);
			Ia(b, lg);
			Ta(b, Tj);
			a = ws(a);
			Ta(b, c);
			Ia(b, e);
			Fa(b, d);
			return a
		}

		function ws(a) {
			var b = a.offsetWidth,
				c = a.offsetHeight,
				d = Jq && !b && !c;
			return (!hp(b) || d) && a[Ya] ? (a = ps(a), new lq(a[R] - a[C], a[P] - a.top)) : new lq(b, c)
		}

		function xs(a, b) {
			Ta(a[zc], b ? S : U)
		}

		function ts(a) {
			return nm == ns(a, Ai)
		}

		function ys(a, b, c, d) {
			if (/^\d+px?$/ [Za](b)) return ga(b, 10);
			var e = a[zc][c],
				f = a.runtimeStyle[c];
			a.runtimeStyle[c] = a[Oc][c];
			a[zc][c] = b;
			b = a[zc][d];
			a[zc][c] = e;
			a.runtimeStyle[c] = f;
			return b
		}

		function zs(a, b) {
			return ys(a, a[Oc] ? a[Oc][b] : l, hk, Kl)
		}
		var As = {
			thin: 2,
			medium: 4,
			thick: 6
		};

		function Bs(a, b) {
			if ((a[Oc] ? a[Oc][b + Uf] : l) == U) return 0;
			var c = a[Oc] ? a[Oc][b + Zf] : l;
			return c in As ? As[c] : ys(a, c, hk, Kl)
		};

		function Cs(a, b, c, d, e, f, g, i) {
			var j, m = c.offsetParent;
			if (m) {
				var o = m[Vc] == Df || m[Vc] == sf;
				if (!o || ns(m, Pl) != gn) j = ss(m), o || (j = jq(j, new $(m[Nc], m[$b])))
			}
			m = ss(a);
			o = vs(a);
			m = new js(m.x, m.y, o[w], o[Q]);
			(o = rs(a)) && m.Jp(new js(o[C], o.top, o[R] - o[C], o[P] - o.top));
			var o = br(a),
				q = br(c);
			if (o.nb != q.nb) {
				var u = o.nb[Bc],
					q = q.Ip(),
					y = new $(0, 0),
					D = dr(u) ? dr(u)[Ob] || dr(u)[Rb] : da,
					Y = u;
				do {
					var L;
					if (D == q) L = ss(Y);
					else {
						var X = Y;
						L = new $;
						if (1 == X[cb])
							if (X[Ya]) X = ps(X), L.x = X[C], L.y = X.top;
							else {
								var G = br(X).Oi(),
									X = ss(X);
								L.x = X.x - G.x;
								L.y = X.y - G.y
							}
						else {
							var G =
								pp(X.Uv),
								aa = X;
							X[qb] ? aa = X[qb][0] : G && X.Fc[qb] && (aa = X.Fc[qb][0]);
							L.x = aa[Wb];
							L.y = aa[Xb]
						}
					}
					y.x += L.x;
					y.y += L.y
				} while (D && D != q && (Y = D.frameElement) && (D = D.parent));
				u = jq(y, ss(u));
				Hq && !o.Kl() && (u = jq(u, o.Oi()));
				xa(m, m[C] + u.x);
				m.top += u.y
			}
			a = (b & 4 && ts(a) ? b ^ 2 : b) & -5;
			b = new $(a & 2 ? m[C] + m[w] : m[C], a & 1 ? m.top + m[Q] : m.top);
			j && (b = jq(b, j));
			e && (b.x += (a & 2 ? -1 : 1) * e.x, b.y += (a & 1 ? -1 : 1) * e.y);
			var na;
			if (g && (na = rs(c)) && j) na.top -= j.y, Va(na, na[R] - j.x), Ra(na, na[P] - j.y), xa(na, na[C] -
				j.x);
			return Ds(b, c, d, f, na, g, i)
		}

		function Ds(a, b, c, d, e, f, g) {
			var a = a[Dc](),
				i = 0,
				j = (c & 4 && ts(b) ? c ^ 2 : c) & -5,
				c = vs(b),
				g = g ? g[Dc]() : c[Dc]();
			if (d || 0 != j) j & 2 ? a.x -= g[w] + (d ? d[R] : 0) : d && (a.x += d[C]), j & 1 ? a.y -= g[Q] + (
				d ? d[P] : 0) : d && (a.y += d.top);
			if (f) {
				if (e) {
					i = a;
					d = 0;
					if (65 == (f & 65) && (i.x < e[C] || i.x >= e[R])) f &= -2;
					if (132 == (f & 132) && (i.y < e.top || i.y >= e[P])) f &= -5;
					if (i.x < e[C] && f & 1) i.x = e[C], d |= 1;
					i.x < e[C] && i.x + g[w] > e[R] && f & 16 && (oa(g, s.max(g[w] - (i.x + g[w] - e[R]), 0)),
						d |= 4);
					if (i.x + g[w] > e[R] && f & 1) i.x = s.max(e[R] - g[w], e[C]), d |= 1;
					f & 2 && (d |= (i.x < e[C] ? 16 : 0) | (i.x + g[w] > e[R] ? 32 : 0));
					if (i.y < e.top && f & 4) i.y = e.top, d |= 2;
					i.y >= e.top && i.y + g[Q] > e[P] && f & 32 && (Ua(g, s.max(g[Q] - (i.y + g[Q] - e[P]), 0)),
						d |= 8);
					if (i.y + g[Q] > e[P] && f & 4) i.y = s.max(e[P] - g[Q], e.top), d |= 2;
					f & 8 && (d |= (i.y < e.top ? 64 : 0) | (i.y + g[Q] > e[P] ? 128 : 0));
					i = d
				} else i = 256;
				if (i & 496) return i
			}
			f = a;
			e = Iq && (Bq || Mq) && Wq(Je);
			f instanceof $ ? (a = f.x, f = f.y) : (a = f, f = ba);
			xa(b[zc], us(a, e));
			b[zc].top = us(f, e);
			if (!(c == g || (!c || !g ? 0 : c[w] == g[w] && c[Q] == g[Q]))) a = br(dr(b)).Kl(), Hq && (!a || !
				Wq(Ue)) ? (c = b[zc], a ? (Hq ? (a = zs(b, ul), e = zs(b, vl), f = zs(b, wl), d = zs(b, tl),
					a = new hs(f, e,
						d, a)) : (a = ms(b, ul), e = ms(b, vl), f = ms(b, wl), d = ms(b, tl), a =
					new hs(ha(f), ha(e), ha(d), ha(a))), Hq ? (e = Bs(b, bh), f = Bs(b, eh), d = Bs(b,
					gh), b = Bs(b, $g), b = new hs(d, f, b, e)) : (e = ms(b, dh), f = ms(b, fh), d = ms(
					b, hh), b = ms(b, ah), b = new hs(ha(d), ha(f), ha(b), ha(e))), c.pixelWidth = g[
				w] - b[C] - a[C] - a[R] - b[R], c.pixelHeight = g[Q] - b.top - a.top - a[P] - b[P]) : (c
				.pixelWidth = g[w], c.pixelHeight = g[Q])) : (b = b[zc], Iq ? b.MozBoxSizing = Zg : Jq ? b
				.WebkitBoxSizing = Zg : b.boxSizing = Zg, oa(b, s.max(g[w], 0) + Ul), Ua(b, s.max(g[Q], 0) +
					Ul));
			return i
		};

		function Es() {}
		Es[K].Oc = function() {};

		function Fs(a, b) {
			this.element = a;
			this.vq = b
		}
		xp(Fs, Es);
		Fs[K].Oc = function(a, b, c) {
			Cs(this.element, this.vq, a, b, ba, c)
		};

		function Gs(a, b) {
			this.u = a instanceof $ ? a : new $(a, b)
		}
		xp(Gs, Es);
		Gs[K].Oc = function(a, b, c, d) {
			Cs(os(a), 0, a, b, this.u, c, l, d)
		};
		var Hs = "StopIteration" in dp ? dp.StopIteration : r("StopIteration");

		function Is() {}
		Ma(Is[K], function() {
			h(Hs)
		});
		Is[K].Tl = function() {
			return this
		};

		function Js(a) {
			if (typeof a.He == T) a = a.He();
			else if (kp(a) || np(a)) a = a[I];
			else {
				var b = 0,
					c;
				for (c in a) b++;
				a = b
			}
			return a
		}

		function Ks(a) {
			if (typeof a.Je == T) return a.Je();
			if (np(a)) return a[qc](S);
			if (kp(a)) {
				for (var b = [], c = a[I], d = 0; d < c; d++) b[v](a[d]);
				return b
			}
			return pq(a)
		}

		function Ls(a, b, c) {
			if (typeof a[Sc] == T) return a[Sc](b, c);
			if (kp(a) || np(a)) return Qp(a, b, c);
			var d;
			if (typeof a.$l == T) d = a.$l();
			else if (typeof a.Je != T)
				if (kp(a) || np(a)) {
					d = [];
					for (var e = a[I], f = 0; f < e; f++) d[v](f)
				} else d = qq(a);
			else d = ba;
			for (var e = Ks(a), f = e[I], g = 0; g < f; g++)
				if (!b[N](c, e[g], d && d[g], a)) return n;
			return k
		};

		function Ms(a, b) {
			this.Oa = {};
			this.wa = [];
			var c = arguments[I];
			if (1 < c) {
				c % 2 && h(r("Uneven number of arguments"));
				for (var d = 0; d < c; d += 2) this.set(arguments[d], arguments[d + 1])
			} else a && this.Il(a)
		}
		V = Ms[K];
		V.Ua = 0;
		V.eh = 0;
		V.He = function() {
			return this.Ua
		};
		V.Je = function() {
			this.bh();
			for (var a = [], b = 0; b < this.wa[I]; b++) a[v](this.Oa[this.wa[b]]);
			return a
		};
		V.$l = function() {
			this.bh();
			return this.wa[hb]()
		};
		V.vw = function(a) {
			return Ns(this.Oa, a)
		};
		V.oq = function(a) {
			for (var b = 0; b < this.wa[I]; b++) {
				var c = this.wa[b];
				if (Ns(this.Oa, c) && this.Oa[c] == a) return k
			}
			return n
		};
		V.Od = function(a, b) {
			if (this === a) return k;
			if (this.Ua != a.He()) return n;
			var c = b || Os;
			this.bh();
			for (var d, e = 0; d = this.wa[e]; e++)
				if (!c(this.get(d), a.get(d))) return n;
			return k
		};

		function Os(a, b) {
			return a === b
		}
		Ba(V, function() {
			this.Oa = {};
			Ga(this.wa, 0);
			this.eh = this.Ua = 0
		});
		V.remove = function(a) {
			return Ns(this.Oa, a) ? (delete this.Oa[a], this.Ua--, this.eh++, this.wa[I] > 2 * this.Ua &&
				this.bh(), k) : n
		};
		V.bh = function() {
			if (this.Ua != this.wa[I]) {
				for (var a = 0, b = 0; a < this.wa[I];) {
					var c = this.wa[a];
					Ns(this.Oa, c) && (this.wa[b++] = c);
					a++
				}
				Ga(this.wa, b)
			}
			if (this.Ua != this.wa[I]) {
				for (var d = {}, b = a = 0; a < this.wa[I];) c = this.wa[a], Ns(d, c) || (this.wa[b++] = c,
					d[c] = 1), a++;
				Ga(this.wa, b)
			}
		};
		V.get = function(a, b) {
			return Ns(this.Oa, a) ? this.Oa[a] : b
		};
		V.set = function(a, b) {
			Ns(this.Oa, a) || (this.Ua++, this.wa[v](a), this.eh++);
			this.Oa[a] = b
		};
		V.Il = function(a) {
			var b;
			a instanceof Ms ? (b = a.$l(), a = a.Je()) : (b = qq(a), a = pq(a));
			for (var c = 0; c < b[I]; c++) this.set(b[c], a[c])
		};
		Oa(V, function() {
			return new Ms(this)
		});
		V.Tl = function(a) {
			this.bh();
			var b = 0,
				c = this.wa,
				d = this.Oa,
				e = this.eh,
				f = this,
				g = new Is;
			Ma(g, function() {
				for (;;) {
					e != f.eh && h(r("The map has changed since the iterator was created"));
					b >= c[I] && h(Hs);
					var g = c[b++];
					return a ? g : d[g]
				}
			});
			return g
		};

		function Ns(a, b) {
			return fa[K][yc][N](a, b)
		};

		function Ps(a) {
			this.Oa = new Ms;
			a && this.Il(a)
		}

		function Qs(a) {
			var b = typeof a;
			return b == il && a || b == T ? hl + qp(a) : b[Zb](0, 1) + a
		}
		V = Ps[K];
		V.He = function() {
			return this.Oa.He()
		};
		V.add = function(a) {
			this.Oa.set(Qs(a), a)
		};
		V.Il = function(a) {
			for (var a = Ks(a), b = a[I], c = 0; c < b; c++) this.add(a[c])
		};
		V.removeAll = function(a) {
			for (var a = Ks(a), b = a[I], c = 0; c < b; c++) this.remove(a[c])
		};
		V.remove = function(a) {
			return this.Oa.remove(Qs(a))
		};
		Ba(V, function() {
			this.Oa[Pb]()
		});
		Sa(V, function(a) {
			return this.Oa.vw(Qs(a))
		});
		V.Jp = function(a) {
			for (var b = new Ps, a = Ks(a), c = 0; c < a[I]; c++) {
				var d = a[c];
				this[Tc](d) && b.add(d)
			}
			return b
		};
		V.Je = function() {
			return this.Oa.Je()
		};
		Oa(V, function() {
			return new Ps(this)
		});
		V.Od = function(a) {
			return this.He() == Js(a) && this.Xw(a)
		};
		V.Xw = function(a) {
			var b = Js(a);
			if (this.He() > b) return n;
			!(a instanceof Ps) && 5 < b && (a = new Ps(a));
			return Ls(this, function(b) {
				return typeof a[Tc] == T ? a[Tc](b) : typeof a.oq == T ? a.oq(b) : kp(a) || np(a) ?
					0 <= Lp(a, b) : rq(a, b)
			})
		};
		V.Tl = function() {
			return this.Oa.Tl(n)
		};

		function Rs() {}
		xp(Rs, zr);
		V = Rs[K];
		V.np = k;
		V.Bl = l;
		V.addEventListener = function(a, b, c, d) {
			Qr(this, a, b, c, d)
		};
		V.removeEventListener = function(a, b, c, d) {
			Ur(this, a, b, c, d)
		};
		V.dispatchEvent = function(a) {
			var b = a[F] || a,
				c = Nr;
			if (b in c) {
				if (np(a)) a = new Gr(a, this);
				else if (a instanceof Gr) Pa(a, a[Ec] || this);
				else {
					var d = a,
						a = new Gr(b, this);
					vq(a, d)
				}
				var d = 1,
					e, c = c[b],
					b = k in c,
					f;
				if (b) {
					e = [];
					for (f = this; f; f = f.Bl) e[v](f);
					f = c[k];
					f.rc = f.Ua;
					for (var g = e[I] - 1; !a.Ge && 0 <= g && f.rc; g--) wa(a, e[g]), d &= Yr(f, e[g], a[F],
						k, a) && a.jh != n
				}
				if (n in c)
					if (f = c[n], f.rc = f.Ua, b)
						for (g = 0; !a.Ge && g < e[I] && f.rc; g++) wa(a, e[g]), d &= Yr(f, e[g], a[F], n,
							a) && a.jh != n;
					else
						for (e = this; !a.Ge && e && f.rc; e = e.Bl) wa(a, e), d &= Yr(f, e, a[F], n, a) &&
							a.jh != n;
				a = Boolean(d)
			} else a = k;
			return a
		};
		V.lb = function() {
			Rs.Pb.lb[N](this);
			Xr(this);
			this.Bl = l
		};

		function Ss(a, b) {
			this.Si = a || 1;
			this.ih = b || Ts;
			this.Jl = Z(this.Gl, this);
			this.Nf = wp()
		}
		xp(Ss, Rs);
		Ss[K].enabled = n;
		var Ts = dp.window;
		V = Ss[K];
		V.sc = l;
		V.Gl = function() {
			if (this.enabled) {
				var a = wp() - this.Nf;
				if (0 < a && a < 0.8 * this.Si) this.sc = this.ih[mc](this.Jl, this.Si - a);
				else if (this.$v(), this.enabled) this.sc = this.ih[mc](this.Jl, this.Si), this.Nf = wp()
			}
		};
		V.$v = function() {
			this[ub](Jn)
		};
		V.start = function() {
			this.enabled = k;
			if (!this.sc) this.sc = this.ih[mc](this.Jl, this.Si), this.Nf = wp()
		};
		V.stop = function() {
			this.enabled = n;
			if (this.sc) this.ih.clearTimeout(this.sc), this.sc = l
		};
		V.lb = function() {
			Ss.Pb.lb[N](this);
			this.stop();
			delete this.ih
		};

		function Us(a, b, c) {
			pp(a) ? c && (a = Z(a, c)) : a && typeof a[Lb] == T ? a = Z(a[Lb], a) : h(r(Ff));
			return 2147483647 < b ? -1 : Ts[mc](a, b || 0)
		};

		function Vs(a) {
			return a
		};

		function Ws(a, b) {
			this.Dc = new $r(this);
			this.wl(a || l);
			b && this.Hw(b)
		}
		xp(Ws, Rs);
		V = Ws[K];
		V.Ga = l;
		V.yu = k;
		V.Up = l;
		V.Jf = n;
		V.kw = n;
		V.sq = -1;
		V.rq = -1;
		V.zu = n;
		V.cw = k;
		V.Cf = Un;
		V.Hw = function(a) {
			this.Cf = a
		};
		V.q = function() {
			return this.Ga
		};
		V.wl = function(a) {
			this.uw();
			this.Ga = a
		};
		V.uw = function() {
			this.Jf && h(r("Can not change this state of the popup while showing."))
		};
		V.B = function() {
			return this.Jf
		};
		V.Df = function(a) {
			this.Tg && this.Tg.stop();
			this.$g && this.$g.stop();
			a ? this.zw() : this.Pi()
		};
		V.Oc = fp;
		V.zw = function() {
			if (!this.Jf && this.bl()) {
				this.Ga || h(r("Caller must call setElement before trying to show the popup"));
				this.Oc();
				var a = dr(this.Ga);
				this.zu && this.Dc.If(a, ck, this.Au, k);
				if (this.yu)
					if (this.Dc.If(a, Uk, this.ap, k), Hq) {
						var b;
						try {
							b = a.activeElement
						} catch (c) {}
						for (; b && b.nodeName == Ef;) {
							try {
								var d = b[Wc] || b[Ub][nc]
							} catch (e) {
								break
							}
							a = d;
							b = a.activeElement
						}
						this.Dc.If(a, Uk, this.ap, k);
						this.Dc.If(a, xi, this.$o)
					} else this.Dc.If(a, Wg, this.$o);
				this.Cf == Un ? this.Bu() : this.Cf == $k && this.Oc();
				this.Jf = k;
				this.Tg ? (Tr(this.Tg,
					Ni, this.bp, n, this), this.Tg.play()) : this.bp()
			}
		};
		V.Pi = function(a) {
			if (!this.Jf || !this.ew(a)) return n;
			this.Dc && this.Dc[Ic]();
			this.$g ? (Tr(this.$g, Ni, vp(this.Xp, a), n, this), this.$g.play()) : this.Xp(a);
			return k
		};
		V.Xp = function(a) {
			this.Cf == Un ? this.kw ? Us(this.Zp, 0, this) : this.Zp() : this.Cf == $k && this.jw();
			this.Jf = n;
			this.vl(a)
		};
		V.Bu = function() {
			Fa(this.Ga[zc], Po);
			xs(this.Ga, k)
		};
		V.Zp = function() {
			Fa(this.Ga[zc], Dj);
			xs(this.Ga, n)
		};
		V.jw = function() {
			xa(this.Ga[zc], le);
			this.Ga[zc].top = le
		};
		V.bl = function() {
			return this[ub](Tg)
		};
		V.bp = function() {
			this.sq = wp();
			this.rq = -1;
			this[ub](Im)
		};
		V.ew = function(a) {
			return this[ub]({
				type: Sg,
				target: a
			})
		};
		V.vl = function(a) {
			this.rq = wp();
			this[ub]({
				type: Ej,
				target: a
			})
		};
		V.ap = function(a) {
			a = a[Ec];
			!nr(this.Ga, a) && (!this.Up || nr(this.Up, a)) && !this.Sp() && this.Pi(a)
		};
		V.Au = function(a) {
			27 == a[Eb] && this.Pi(a[Ec]) && (a[ob](), a[tc]())
		};
		V.$o = function(a) {
			if (this.cw) {
				var b = dr(this.Ga);
				if (Hq || Gq) {
					if (a = b.activeElement, !a || nr(this.Ga, a) || a[Vc] == sf) return
				} else if (a[Ec] != b) return;
				this.Sp() || this.Pi()
			}
		};
		V.Sp = function() {
			return 150 > wp() - this.sq
		};
		V.lb = function() {
			Ws.Pb.lb[N](this);
			this.Dc.cc();
			Br(this.Tg);
			Br(this.$g);
			delete this.Ga;
			delete this.Dc
		};

		function Xs(a, b) {
			this.Qt = 4;
			this.m = b || ba;
			Ws[N](this, a)
		}
		xp(Xs, Ws);
		Xs[K].re = function() {
			return this.m || l
		};
		Xs[K].Qw = function(a) {
			this.m = a || ba;
			this.B() && this.Oc()
		};
		Xs[K].Oc = function() {
			if (this.m) {
				var a = !this.B() && this.Cf != $k,
					b = this.q();
				a && (Fa(b[zc], Dj), xs(b, k));
				this.m.Oc(b, this.Qt, this.Cx);
				a && xs(b, n)
			}
		};

		function Ys(a, b, c) {
			this.Ai = c || (a ? br(np(a) ? ja[gb](a) : a) : br());
			Xs[N](this, this.Ai.ep(Di, {
				style: Rl
			}));
			this.Ll = new $(1, 1);
			this.Ce = new Ps;
			a && this.lw(a);
			b != l && this.rw(b)
		}
		xp(Ys, Xs);
		var Zs = [];
		V = Ys[K];
		V.Rb = l;
		Ka(V, "goog-tooltip");
		V.mq = 500;
		V.nq = 0;
		V.lw = function(a) {
			a = np(a) ? ja[gb](a) : a;
			this.Ce.add(a);
			Qr(a, Xk, this.cq, n, this);
			Qr(a, Wk, this.Vi, n, this);
			Qr(a, Vk, this.bq, n, this);
			Qr(a, Xi, this.aq, n, this);
			Qr(a, Wg, this.Vi, n, this)
		};
		V.detach = function(a) {
			if (a) a = np(a) ? ja[gb](a) : a, this.jq(a), this.Ce.remove(a);
			else {
				for (var b = this.Ce.Je(), c = 0; a = b[c]; c++) this.jq(a);
				this.Ce[Pb]()
			}
		};
		V.jq = function(a) {
			Ur(a, Xk, this.cq, n, this);
			Ur(a, Wk, this.Vi, n, this);
			Ur(a, Vk, this.bq, n, this);
			Ur(a, Xi, this.aq, n, this);
			Ur(a, Wg, this.Vi, n, this)
		};
		V.Fv = function(a) {
			this.mq = a
		};
		V.Ev = function(a) {
			this.nq = a
		};
		V.rw = function(a) {
			var b = this.q();
			if (En in b) b.textContent = a;
			else if (b[Gb] && 3 == b[Gb][cb]) {
				for (; b.lastChild != b[Gb];) b[Cc](b.lastChild);
				b[Gb].data = a
			} else lr(b), b[t](dr(b)[lb](a))
		};
		V.wl = function(a) {
			var b = this.q();
			b && mr(b);
			Ys.Pb.wl[N](this, a);
			a && (b = this.Ai.nb[Bc], b.insertBefore(a, b.lastChild))
		};
		V.getState = function() {
			return this.Mf ? this.B() ? 4 : 1 : this.Wg ? 3 : this.B() ? 2 : 0
		};
		V.bl = function() {
			if (!Ws[K].bl[N](this)) return n;
			if (this[Hc])
				for (var a, b = 0; a = Zs[b]; b++) nr(a.q(), this[Hc]) || a.Df(n);
			0 <= Lp(Zs, this) || Zs[v](this);
			a = this.q();
			Ka(a, this.className);
			this.Fi();
			Qr(a, Xk, this.dp, n, this);
			Qr(a, Wk, this.cp, n, this);
			this.$k();
			return k
		};
		V.vl = function() {
			Wp(Zs, this);
			for (var a = this.q(), b, c = 0; b = Zs[c]; c++) b[Hc] && nr(a, b[Hc]) && b.Df(n);
			this.jp && this.jp.jl();
			Ur(a, Xk, this.dp, n, this);
			Ur(a, Wk, this.cp, n, this);
			Qa(this, ba);
			if (0 == this.getState()) this.yi = n;
			Ws[K].vl[N](this)
		};
		V.Pw = function(a, b) {
			this[Hc] == a && this.Ce[Tc](this[Hc]) && (this.yi || !this.Ix ? (this.Df(n), this.B() || this
				.cv(a, b)) : Qa(this, ba));
			this.Mf = ba
		};
		V.cv = function(a, b) {
			Qa(this, a);
			this.Qw(b || this.Gp(0));
			this.Df(k)
		};
		V.Sw = function(a) {
			this.Wg = ba;
			a == this[Hc] && (this.Rb == l || this.Rb != this.q() && !this.Ce[Tc](this.Rb)) && !this.Lu() &&
				this.Df(n)
		};
		V.Lu = function() {
			return !(!this.wp || !this.wp.Rb)
		};
		V.Pp = function(a) {
			var b = this.Ai.Oi();
			this.Ll.x = a[Wb] + b.x;
			this.Ll.y = a[Xb] + b.y
		};
		V.cq = function(a) {
			var b = this.Ei(a[Ec]);
			this.Rb = b;
			this.Fi();
			b != this[Hc] && (Qa(this, b), this.Kp(b), this.Hp(), this.Pp(a))
		};
		V.Ei = function(a) {
			try {
				for (; a && !this.Ce[Tc](a);) a = a[Zc];
				return a
			} catch (b) {
				return l
			}
		};
		V.bq = function(a) {
			this.Pp(a);
			this.yi = k
		};
		V.aq = function(a) {
			this.Rb = a = this.Ei(a[Ec]);
			this.yi = k;
			if (this[Hc] != a) {
				Qa(this, a);
				var b = this.Gp(1);
				this.Fi();
				this.Kp(a, b);
				this.Hp()
			}
		};
		V.Gp = function(a) {
			return 0 == a ? (a = this.Ll[Dc](), new $s(a)) : new at(this.Rb)
		};
		V.Hp = function() {
			if (this[Hc])
				for (var a, b = 0; a = Zs[b]; b++)
					if (nr(a.q(), this[Hc])) a.wp = this, this.jp = a
		};
		V.Vi = function(a) {
			var b = this.Ei(a[Ec]),
				c = this.Ei(a[$a]);
			if (b != c) {
				if (b == this.Rb) this.Rb = l;
				this.$k();
				this.yi = n;
				this.B() && (!a[$a] || !nr(this.q(), a[$a])) ? this.jl() : Qa(this, ba)
			}
		};
		V.dp = function() {
			var a = this.q();
			if (this.Rb != a) this.Fi(), this.Rb = a
		};
		V.cp = function(a) {
			var b = this.q();
			if (this.Rb == b && (!a[$a] || !nr(b, a[$a]))) this.Rb = l, this.jl()
		};
		V.Kp = function(a, b) {
			if (!this.Mf) this.Mf = Us(Z(this.Pw, this, a, b), this.mq)
		};
		V.$k = function() {
			if (this.Mf) Ts.clearTimeout(this.Mf), this.Mf = ba
		};
		V.jl = function() {
			if (2 == this.getState()) this.Wg = Us(Z(this.Sw, this, this[Hc]), this.nq)
		};
		V.Fi = function() {
			if (this.Wg) Ts.clearTimeout(this.Wg), this.Wg = ba
		};
		V.lb = function() {
			this.Df(n);
			this.$k();
			this.detach();
			this.q() && mr(this.q());
			this.Rb = l;
			delete this.Ai;
			Ys.Pb.lb[N](this)
		};

		function $s(a, b) {
			Gs[N](this, a, b)
		}
		xp($s, Gs);
		$s[K].Oc = function(a, b, c) {
			b = os(a);
			b = rs(b);
			c = c ? new hs(c.top + 10, c[R], c[P], c[C] + 10) : new hs(10, 0, 0, 10);
			Ds(this.u, a, 4, c, b, 9) & 496 && Ds(this.u, a, 4, c, b, 5)
		};

		function at(a) {
			Fs[N](this, a, 3)
		}
		xp(at, Fs);
		at[K].Oc = function(a, b, c) {
			var d = new $(10, 0);
			Cs(this.element, this.vq, a, b, d, c, 9) & 496 && Cs(this.element, 2, a, 1, d, c, 5)
		};
		var bt = {
			aliceblue: "#f0f8ff",
			antiquewhite: "#faebd7",
			aqua: "#00ffff",
			aquamarine: "#7fffd4",
			azure: "#f0ffff",
			beige: "#f5f5dc",
			bisque: "#ffe4c4",
			black: "#000000",
			blanchedalmond: "#ffebcd",
			blue: "#0000ff",
			blueviolet: "#8a2be2",
			brown: "#a52a2a",
			burlywood: "#deb887",
			cadetblue: "#5f9ea0",
			chartreuse: "#7fff00",
			chocolate: "#d2691e",
			coral: "#ff7f50",
			cornflowerblue: "#6495ed",
			cornsilk: "#fff8dc",
			crimson: "#dc143c",
			cyan: "#00ffff",
			darkblue: "#00008b",
			darkcyan: "#008b8b",
			darkgoldenrod: "#b8860b",
			darkgray: "#a9a9a9",
			darkgreen: "#006400",
			darkgrey: "#a9a9a9",
			darkkhaki: "#bdb76b",
			darkmagenta: "#8b008b",
			darkolivegreen: "#556b2f",
			darkorange: "#ff8c00",
			darkorchid: "#9932cc",
			darkred: "#8b0000",
			darksalmon: "#e9967a",
			darkseagreen: "#8fbc8f",
			darkslateblue: "#483d8b",
			darkslategray: "#2f4f4f",
			darkslategrey: "#2f4f4f",
			darkturquoise: "#00ced1",
			darkviolet: "#9400d3",
			deeppink: "#ff1493",
			deepskyblue: "#00bfff",
			dimgray: "#696969",
			dimgrey: "#696969",
			dodgerblue: "#1e90ff",
			firebrick: "#b22222",
			floralwhite: "#fffaf0",
			forestgreen: "#228b22",
			fuchsia: "#ff00ff",
			gainsboro: "#dcdcdc",
			ghostwhite: "#f8f8ff",
			gold: "#ffd700",
			goldenrod: "#daa520",
			gray: "#808080",
			green: "#008000",
			greenyellow: "#adff2f",
			grey: "#808080",
			honeydew: "#f0fff0",
			hotpink: "#ff69b4",
			indianred: "#cd5c5c",
			indigo: "#4b0082",
			ivory: "#fffff0",
			khaki: "#f0e68c",
			lavender: "#e6e6fa",
			lavenderblush: "#fff0f5",
			lawngreen: "#7cfc00",
			lemonchiffon: "#fffacd",
			lightblue: "#add8e6",
			lightcoral: "#f08080",
			lightcyan: "#e0ffff",
			lightgoldenrodyellow: "#fafad2",
			lightgray: "#d3d3d3",
			lightgreen: "#90ee90",
			lightgrey: "#d3d3d3",
			lightpink: "#ffb6c1",
			lightsalmon: "#ffa07a",
			lightseagreen: "#20b2aa",
			lightskyblue: "#87cefa",
			lightslategray: "#778899",
			lightslategrey: "#778899",
			lightsteelblue: "#b0c4de",
			lightyellow: "#ffffe0",
			lime: "#00ff00",
			limegreen: "#32cd32",
			linen: "#faf0e6",
			magenta: "#ff00ff",
			maroon: "#800000",
			mediumaquamarine: "#66cdaa",
			mediumblue: "#0000cd",
			mediumorchid: "#ba55d3",
			mediumpurple: "#9370d8",
			mediumseagreen: "#3cb371",
			mediumslateblue: "#7b68ee",
			mediumspringgreen: "#00fa9a",
			mediumturquoise: "#48d1cc",
			mediumvioletred: "#c71585",
			midnightblue: "#191970",
			mintcream: "#f5fffa",
			mistyrose: "#ffe4e1",
			moccasin: "#ffe4b5",
			navajowhite: "#ffdead",
			navy: "#000080",
			oldlace: "#fdf5e6",
			olive: "#808000",
			olivedrab: "#6b8e23",
			orange: "#ffa500",
			orangered: "#ff4500",
			orchid: "#da70d6",
			palegoldenrod: "#eee8aa",
			palegreen: "#98fb98",
			paleturquoise: "#afeeee",
			palevioletred: "#d87093",
			papayawhip: "#ffefd5",
			peachpuff: "#ffdab9",
			peru: "#cd853f",
			pink: "#ffc0cb",
			plum: "#dda0dd",
			powderblue: "#b0e0e6",
			purple: "#800080",
			red: "#ff0000",
			rosybrown: "#bc8f8f",
			royalblue: "#4169e1",
			saddlebrown: "#8b4513",
			salmon: "#fa8072",
			sandybrown: "#f4a460",
			seagreen: "#2e8b57",
			seashell: "#fff5ee",
			sienna: "#a0522d",
			silver: "#c0c0c0",
			skyblue: "#87ceeb",
			slateblue: "#6a5acd",
			slategray: "#708090",
			slategrey: "#708090",
			snow: "#fffafa",
			springgreen: "#00ff7f",
			steelblue: "#4682b4",
			tan: "#d2b48c",
			teal: "#008080",
			thistle: "#d8bfd8",
			tomato: "#ff6347",
			turquoise: "#40e0d0",
			violet: "#ee82ee",
			wheat: "#f5deb3",
			white: Ud,
			whitesmoke: "#f5f5f5",
			yellow: "#ffff00",
			yellowgreen: "#9acd32"
		};

		function ct(a) {
			var b = {},
				a = S + a,
				c = a[ib](0) == ud ? a : ud + a;
			if (dt[Za](c)) return b.Wi = et(c), Aa(b, Cj), b;
			a: {
				var d = a.match(ft);
				if (d) {
					var c = ea(d[1]),
						e = ea(d[2]),
						d = ea(d[3]);
					if (0 <= c && 255 >= c && 0 <= e && 255 >= e && 0 <= d && 255 >= d) {
						c = [c, e, d];
						break a
					}
				}
				c = []
			}
			if (c[I]) return b.Wi = gt(c), Aa(b, gm), b;
			if (bt && (c = bt[a[fd]()])) return b.Wi = c, Aa(b, al), b;
			h(r(a + " is not a valid color string"))
		}
		var ht = /#(.)(.)(.)/;

		function et(a) {
			dt[Za](a) || h(r("'" + a + "' is not a valid hex color"));
			4 == a[I] && (a = a[bb](ht, vd));
			return a[fd]()
		}

		function it(a) {
			a = et(a);
			return [ga(a[Zb](1, 2), 16), ga(a[Zb](3, 2), 16), ga(a[Zb](5, 2), 16)]
		}

		function jt(a, b, c) {
			a = ea(a);
			b = ea(b);
			c = ea(c);
			(ka(a) || 0 > a || 255 < a || ka(b) || 0 > b || 255 < b || ka(c) || 0 > c || 255 < c) && h(r('"(' +
				a + ge + b + ge + c + '") is not a valid RGB color'));
			a = kt(a[ac](16));
			b = kt(b[ac](16));
			c = kt(c[ac](16));
			return ud + a + b + c
		}

		function gt(a) {
			return jt(a[0], a[1], a[2])
		}
		var dt = /^#(?:[0-9a-f]{3}){1,2}$/i,
			ft = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;

		function kt(a) {
			return 1 == a[I] ? Ae + a : a
		}

		function lt(a, b, c) {
			c = pr(c, 0, 1);
			return [s[z](c * a[0] + (1 - c) * b[0]), s[z](c * a[1] + (1 - c) * b[1]), s[z](c * a[2] + (1 - c) *
				b[2])]
		};

		function mt(a) {
			return a == U || a == S || a == mo ? U : ct(a).Wi
		}

		function nt(a) {
			if (a == U) return U;
			a = it(a);
			a = s[z]((a[0] + a[1] + a[2]) / 3);
			return jt(a, a, a)
		}

		function ot(a, b) {
			a = sq(a);
			if (!W(a[bc])) a.bold = b;
			return a
		};

		function pt(a, b) {
			this.start = a < b ? a : b;
			this.end = a < b ? b : a
		}
		Oa(pt[K], function() {
			return new pt(this[O], this.end)
		});

		function qt(a, b) {
			return a[O] <= b && a.end >= b
		};

		function rt(a, b, c) {
			c = W(c) ? c : 1.0E-5;
			return a == b || s.abs(a - b) <= c
		}

		function st(a, b, c) {
			return !a || a == U ? b : !b || b == U ? a : gt(lt(it(a), it(b), c))
		}

		function tt(a, b) {
			if (!W(b)) return a;
			var c = new pt(b, b);
			return a ? new pt(s.min(a[O], c[O]), s.max(a.end, c.end)) : c
		}

		function ut(a, b, c) {
			var d = W(b) ? b : a && W(c) && c < a[O] ? c : a ? a[O] : l,
				a = W(c) ? c : a && W(b) && b > a.end ? b : a ? a.end : l;
			return W(d) && W(a) ? new pt(d, a) : l
		};

		function vt(a, b, c) {
			this.ze = a;
			this.ye = mt(b);
			this.xe = mt(W(c) ? c : Ud)
		}
		Oa(vt[K], function() {
			return new vt(this.ze, this.ye, this.xe)
		});
		vt[K].$h = function() {
			return new vt(this.ze, nt(this.ye), nt(this.xe))
		};

		function wt(a) {
			W(a) || (a = {});
			this.O = U;
			W(a.fill) && this.Fk(a.fill);
			this.$b = 1;
			W(a.rb) && this.dk(a.rb);
			this.Jb = U;
			W(a.stroke) && this.gc(a.stroke);
			this.H = 1;
			W(a.Qa) && this.ee(a.Qa);
			this.nc = 1;
			W(a.vd) && this.bg(a.vd);
			this.jd = $m;
			W(a.io) && this.co(a.io);
			this.F = l;
			if (a.F) this.F = sq(a.F), this.F.Kd = mt(this.F.Kd), this.F.Ld = mt(this.F.Ld);
			this.Ea = l;
			a.pattern && this.Kk(a.pattern)
		}
		V = wt[K];
		Oa(V, function() {
			var a = new wt;
			a.O = this.O;
			a.$b = this.$b;
			a.Jb = this.Jb;
			a.H = this.H;
			a.nc = this.nc;
			a.jd = this.jd;
			a.F = this.F ? sq(this.F) : l;
			a.Ea = this.Ea ? this.Ea[Dc]() : l;
			return a
		});
		V.$h = function() {
			var a = this[Dc]();
			a.Fk(nt(this.O));
			a.gc(nt(this.Jb));
			if (this.F) {
				var b = sq(this.F);
				b.Kd = nt(this.F.Kd);
				b.Ld = nt(this.F.Ld);
				a.F = b
			}
			this.Ea && a.Kk(this.Ea.$h());
			return a
		};
		V.Fk = function(a) {
			this.O = mt(a)
		};
		V.dk = function(a) {
			this.$b = pr(a, 0, 1)
		};
		V.gc = function(a, b) {
			this.Jb = mt(a);
			W(b) && this.ee(b)
		};
		V.ee = function(a) {
			this.H = a
		};
		V.wo = function() {
			return this.pd() ? this.H : 0
		};
		V.bg = function(a) {
			this.nc = pr(a, 0, 1)
		};
		V.co = function(a) {
			this.jd = a
		};
		V.Kk = function(a) {
			this.Ea = a
		};
		V.Qg = function() {
			return 0 < this.$b && (!(!W(this.O) || this.O == U) || W(this.F) || W(this.Ea))
		};
		V.pd = function() {
			return 0 < this.H && 0 < this.nc && !(!W(this.Jb) || this.Jb == U)
		};
		V.ho = function() {
			return this.jd != $m
		};
		V.xg = function() {
			return !this.Qg() && !this.pd()
		};
		V.Af = function() {
			return this.Qg() && 1 <= this.$b
		};
		V.fo = function() {
			return this.pd() && 1 <= this.nc
		};
		var xt = new wt({
			rb: 0,
			fill: So,
			vd: 0,
			stroke: So
		});

		function yt(a, b) {
			return new wt({
				stroke: U,
				fill: a,
				rb: W(b) ? b : 1
			})
		}

		function zt(a, b, c) {
			return new wt({
				stroke: a,
				Qa: b,
				fill: W(c) && c ? Sd : U
			})
		}

		function At(a, b) {
			return a.Af() ? a.O : b.Af() ? !a.Qg() ? b.O : st(a.O, b.O, a.$b) : l
		};

		function Bt(a, b) {
			a && (a.logicalname = b)
		}

		function Ct(a) {
			a = or(a, function(a) {
				return W(a.logicalname)
			}, k);
			return !a ? kg : a.logicalname
		};

		function Dt(a) {
			var b = l,
				c = l;
			pp(a) ? b = a : c = a;
			this.dw = b;
			this.Ga = c;
			this.Ui = l
		}
		Dt[K].ib = function(a) {
			this.Ui = a;
			this.Mg() && Bt(this.Ga, a)
		};
		Dt[K].Nn = function() {
			return this.Mg() ? Ct(this.Ga) : this.Ui
		};
		Dt[K].q = function() {
			if (!this.Ga) this.Ga = this.dw(), ip(this.Ui) || Bt(this.Ga, this.Ui);
			return this.Ga
		};
		Dt[K].Mg = function() {
			return !!this.Ga
		};

		function Et() {
			this.eb = []
		}
		V = Et[K];
		V.ac = function(a) {
			this.eb[v](a)
		};
		V.move = function(a, b) {
			this.ac({
				type: Zk,
				data: {
					x: a,
					y: b
				}
			})
		};
		V.G = function(a, b) {
			this.ac({
				type: Ak,
				data: {
					x: a,
					y: b
				}
			})
		};
		V.pi = function(a, b, c, d, e, f) {
			this.ac({
				type: ji,
				data: {
					Cb: a,
					Db: b,
					gd: c,
					hd: d,
					x: e,
					y: f
				}
			})
		};
		V.jb = function(a, b, c, d, e, f, g) {
			this.ac({
				type: Bg,
				data: {
					ml: a,
					nl: b,
					ol: c,
					pl: d,
					Ho: e,
					ql: f,
					Io: g
				}
			})
		};
		V.Dk = function(a, b) {
			if (0 != a[I])
				if (0 == this.eb[I] ? this[rb](a[0].x, a[0].y) : this.G(a[0].x, a[0].y), b)
					for (var c = 1; c < a[I]; ++c) this.pi(b[c - 1][1].x, b[c - 1][1].y, b[c][0].x, b[c][0]
						.y, a[c].x, a[c].y);
				else
					for (c = 1; c < a[I]; ++c) this.G(a[c].x, a[c].y)
		};
		V.close = function() {
			this.ac({
				type: Vh,
				data: l
			})
		};

		function Ft(a, b) {
			var c = new Et;
			0 < a[I] && (c.Dk(a), b || c[Ac]());
			return c
		};

		function Gt(a, b, c) {
			switch (c) {
				case fn:
					c = a;
					a += b;
					break;
				case Ni:
					c = a - b;
					break;
				case Eh:
					c = a - b / 2;
					a += b / 2;
					break;
				default:
					c = a = NaN
			}
			return {
				start: c,
				end: a
			}
		}

		function Ht(a, b, c) {
			switch (c) {
				case fn:
					return a;
				case Ni:
					return b;
				case Eh:
					return ur(a, b)
			}
		};

		function It(a) {
			this.Nc = a;
			this.Wd = br(a);
			this.ll = [];
			this.Pd = new $r;
			this.Ln = fs(Z(function(a, c) {
				return this.Rp(a, c)
			}, this), function(a, c) {
				var d = [a, c[0]];
				mq(c[1], function(a, b) {
					d[v](a);
					d[v](b)
				});
				return d[cd](ig)
			})
		}
		var Jt = 0;

		function Kt() {
			var a = jg + Jt[ac]();
			Jt++;
			return a
		}
		V = It[K];
		oa(V, 0);
		Ua(V, 0);
		V.qs = function(a, b) {
			var c = this.hq(a, b);
			c.ib(kg);
			return c
		};
		Ba(V, function() {
			this.Pd.cc();
			this.Pd = new $r;
			Mp(this.ll, function(a) {
				a.lb()
			});
			Vp(this.ll);
			this.Qo(this.Nc[gb](Gh))
		});
		V.ib = function(a, b) {
			a && (a[sc] == Dt ? a.ib(b) : Bt(a, b))
		};
		V.Nn = function(a) {
			return Ct(a)
		};
		V.qf = function(a, b, c) {
			a[sc] == Dt && (a = a.q());
			this.Pd.If(a, b, c)
		};
		V.is = function(a, b, c) {
			a = new Ys(a);
			b = this.Wd.ep(Di, S, b);
			ks(b, c);
			a.q()[t](b);
			a.Fv(100);
			a.Ev(100);
			this.ll[v](a);
			return a
		};
		V.appendChild = function(a, b) {
			if (b) {
				var c;
				if (b[sc] == Dt) {
					if (!b.Mg()) return;
					c = b.q()
				} else c = b;
				this.Dp(a)[t](c)
			}
		};
		V.replaceChild = function(a, b, c) {
			this.Dp(a).replaceChild(b, c);
			Xr(c)
		};
		V.Ng = function(a) {
			a.Mg() && this.Qo(a.q())
		};
		V.Qo = function(a) {
			this.Wd.Ng(a)
		};
		V.tl = function(a) {
			this.Wd.removeNode(a);
			Xr(a)
		};
		V.Dp = function(a) {
			return a ? a.q() : this.Nc[gb](Fh)
		};
		V.ja = function(a) {
			var a = W(a) ? a : n,
				b = new Dt(Z(this.Lp, this));
			a || b.q();
			return b
		};
		V.oe = function(a, b) {
			return this.tq(this.bx(a), b)
		};
		V.Zj = function(a, b, c, d, e) {
			a = this.Uh(a, b, c, d);
			this[t](e, a);
			return a
		};
		V.um = function(a, b, c, d, e, f) {
			a = this.wq(a, b, c, d, e);
			this[t](f, a);
			return a
		};
		V.Wa = function(a, b, c, d, e, f) {
			a = this.ne(a, b, c, d, e);
			this[t](f, a);
			return a
		};
		V.xa = function(a, b, c) {
			a = this.oe(a, b);
			this[t](c, a);
			return a
		};
		V.rh = function(a, b, c, d, e, f, g, i) {
			a = this.xq(a, b, c, d, e, f, g);
			this[t](i, a);
			return a
		};
		V.ct = function(a, b, c, d, e, f, g, i, j) {
			a = this.Yi(a, b, c, d, e, f, g, i);
			this[t](j, a);
			return a
		};
		V.js = function(a, b, c, d, e, f, g, i, j) {
			a = this.Zi(a, b, c, d, e, f, g, i);
			this[t](j, a);
			return a
		};
		V.Ju = function(a, b) {
			return this.Ln(a, b)[w]
		};
		V.yw = function(a, b) {
			switch (b[F]) {
				case Zk:
					var c = b[A];
					this.Yo(a, c.x, c.y);
					break;
				case Ak:
					c = b[A];
					this.Xo(a, c.x, c.y);
					break;
				case ji:
					c = b[A];
					this.Wo(a, c.Cb, c.Db, c.gd, c.hd, c.x, c.y);
					break;
				case Bg:
					c = b[A];
					this.Uo(a, c.ml, c.nl, c.ol, c.pl, c.Ho, c.ql, c.Io);
					break;
				case Vh:
					this.Vo(a)
			}
		};
		V.bx = function(a) {
			for (var b = [], c = 0; c < a.eb[I]; c++) this.yw(b, a.eb[c]);
			return b
		};

		function Lt(a) {
			It[N](this, a);
			this.Ff = this.dh = l;
			this.Ji = {}
		}
		xp(Lt, It);
		V = Lt[K];
		V.hq = function(a, b) {
			oa(this, a);
			Ua(this, b);
			var c = this.fb(wn);
			c[E](Mj, Fh);
			c[E](To, a);
			c[E](Bj, b);
			this.Nc[gb](Gh)[t](c);
			this.Ff = this.fb(zi);
			this.Ff[E](Mj, zi);
			this.Ji = {};
			c[t](this.Ff);
			return new Dt(c)
		};
		V.Qp = function() {
			return this.Nc[gb](Gh).innerHTML
		};
		qa(V, function(a) {
			return s[z](100 * a) / 100
		});
		V.Uh = function(a, b, c, d) {
			var e = this.fb(Ph);
			e[E](li, a);
			e[E](mi, b);
			e[E](Vl, c);
			this.Ec(e, d);
			return e
		};
		V.wq = function(a, b, c, d, e) {
			var f = this.fb(Ki);
			f[E](li, a);
			f[E](mi, b);
			f[E](om, c);
			f[E](pm, d);
			this.Ec(f, e);
			return f
		};
		V.ne = function(a, b, c, d, e) {
			var f = this.fb(Zl);
			f[E](Vo, a);
			f[E](Yo, b);
			f[E](To, c);
			f[E](Bj, d);
			this.Ec(f, e);
			return f
		};
		V.tq = function(a, b) {
			var c = this.fb(xl);
			c[E](ni, a[cd](S));
			this.Ec(c, b);
			return c
		};
		V.xq = function(a, b, c, d, e, f, g) {
			return this.Zi(a, b, c, d, 0, e, f, g)
		};
		V.Yi = function(a, b, c, d, e, f, g, i) {
			var j = Ht(b, d, f),
				m = Ht(c, e, f);
			return this.Zi(a, j, m, (new vr(b, c, d, e)).ax(), rr(180 * s[Db](e - c, d - b) / s.PI), f, g,
				i)
		};
		V.Zi = function(a, b, c, d, e, f, g, i) {
			var j = new wt({
				fill: i[tb]
			});
			if (i[tb] && i[tb] != U && i.$a && i.$a != U) {
				var m = new wt({
						fill: i[tb],
						stroke: i.$a,
						Qa: 3
					}),
					o = this.ja();
				this.Yg(a, b, c, d, e, f, g, i, m, o);
				this.Yg(a, b, c, d, e, f, g, i, j, o);
				return o.q()
			}
			return this.Xg(a, b, c, d, e, f, g, i, j)
		};
		V.Xg = function(a, b, c, d, e, f, g, i, j) {
			d = this.fb(An);
			g = Gt(0, i[M], g);
			g = Ht(g[O], g.end, Ni);
			g -= 0.15 * i[M];
			g = new wr(0, g);
			g[xc](sr(e));
			c = new wr(b, c);
			c.add(g);
			b = c.x;
			c = c.y;
			d[t](this.Nc[lb](a));
			switch (f) {
				case fn:
					d[E](Bn, fn);
					break;
				case Eh:
					d[E](Bn, Ok);
					break;
				case Ni:
					d[E](Bn, Ni)
			}
			d[E](Vo, b);
			d[E](Yo, c);
			d[E](Zi, i.zb);
			d[E]($i, i[M] || 0);
			i[bc] && d[E](bj, Xg);
			i.zf && d[E](aj, bk);
			i.$n && d[E](Cn, ro);
			0 != e && d[E](ko, km + e + id + b + id + c + fe);
			this.Ec(d, j);
			return d
		};
		V.Yg = function(a, b, c, d, e, f, g, i, j, m) {
			a = this.Xg(a, b, c, d, e, f, g, i, j);
			this[t](m, a);
			return a
		};
		V.Lp = function() {
			return this.fb(nj)
		};
		V.en = function(a, b) {
			var c = Kt(),
				d = this.fb(Th),
				e = this.fb(Zl);
			e[E](Vo, b[C]);
			e[E](Yo, b.top);
			e[E](To, b[w]);
			e[E](Bj, b[Q]);
			d[t](e);
			d[E](Mj, c);
			this.Ff[t](d);
			d = a.q();
			d[E](Sh, so + c + fe);
			return d
		};
		V.Yo = function(a, b, c) {
			a[v](If + b + ge + c)
		};
		V.Xo = function(a, b, c) {
			a[v](Gf + b + ge + c)
		};
		V.Wo = function(a, b, c, d, e, f, g) {
			a[v](tf + b + ge + c + ge + d + ge + e + ge + f + ge + g)
		};
		V.Vo = function(a) {
			a[v](bg)
		};
		V.Uo = function(a, b, c, d, e, f, g, i) {
			var f = rr(f),
				g = rr(g),
				j = d * s.cos(sr(g - 90)),
				m = e * s.sin(sr(g - 90)),
				f = i ? g - f : f - g;
			0 > f && (f += 360);
			a[v]( of +d + ge + e + je + (180 < f ? 1 : 0) + ge + (i ? 1 : 0) + ge + (b + j) + ge + (c + m))
		};
		V.Kg = function(a, b, c) {
			a[E](ko, lo + b + ie + c + fe)
		};
		V.Qk = function(a, b) {
			a[E](To, b)
		};
		V.no = function(a, b) {
			a[E](Vo, b)
		};
		V.gc = function(a, b, c) {
			a[E](un, c);
			b && a[E](qn, b)
		};
		V.Rp = function(a, b) {
			var c = this.dh;
			if (!c) {
				var d = this.Nc,
					c = d.createElementNS(Kj, Di),
					e = c[zc];
				Ta(e, U);
				Ia(e, lg);
				e.top = this[Q] + 10 + Ul;
				xa(e, this[w] + 10 + Ul);
				e.whiteSpace = el;
				c[t](d[lb](id));
				d[Bc][t](c);
				this.dh = c
			}
			c[Gb].data = a;
			e = c[zc];
			ra(e, b.zb);
			Na(e, b[M] + Ul);
			e.fontWeight = b[bc] ? Xg : S;
			e.fontStyle = b.zf ? bk : S;
			Ta(e, Vg);
			d = c[kc];
			c = c[Mc];
			Ta(e, U);
			return new lq(d, c)
		};
		V.fb = function(a) {
			return this.Nc.createElementNS(Lj, a)
		};
		V.Ec = function(a, b) {
			b.pd() ? (a[E](qn, b.Jb), a[E](un, b.H), b.fo() ? a.removeAttribute(tn) : a[E](tn, b.nc), b
			.ho() ? a[E](rn, Mt(b.jd, b.H)) : a.removeAttribute(rn)) : (a[E](qn, U), a[E](un, 0));
			b.Af() ? a.removeAttribute(Si) : a[E](Si, b.$b);
			var c = b.F;
			if (c) c = this.ht(c), a[E](Ri, so + c + fe);
			else if (W(b.Ea)) c = this.it(b.Ea), a[E](Ri, so + c + fe);
			else a[E](Ri, b.O)
		};
		V.ht = function(a) {
			var b = Kt(),
				c = this.fb(Ek),
				d = a.Cb,
				e = a.gd,
				f = a.Db,
				g = a.hd;
			typeof d == pn && d[ib](d[I] - 1) == Yd && (d = s[z](ga(d, 10) * this[w] / 100));
			typeof e == pn && e[ib](e[I] - 1) == Yd && (e = s[z](ga(e, 10) * this[w] / 100));
			typeof f == pn && f[ib](f[I] - 1) == Yd && (f = s[z](ga(f, 10) * this[Q] / 100));
			typeof g == pn && g[ib](g[I] - 1) == Yd && (g = s[z](ga(g, 10) * this[Q] / 100));
			c[E](Mj, b);
			c[E](Wo, d);
			c[E](Zo, f);
			c[E](Xo, e);
			c[E]($o, g);
			c[E](tj, to);
			d = this.fb(ln);
			d[E](jl, De);
			d[E](vn, mn + a.Kd);
			c[t](d);
			d = this.fb(ln);
			d[E](jl, Ke);
			d[E](vn, mn + a.Ld);
			c[t](d);
			this.Ff[t](c);
			return b
		};
		V.it = function(a) {
			var b = a.ze + ig + a.ye + ig + a.xe;
			if (!(b in this.Ji)) {
				var c = l;
				switch (a.ze) {
					case Tl:
						c = this.Zv(a)
				}
				a = Kt();
				c[E](Mj, a);
				this.Ff[t](c);
				this.Ji[b] = a
			}
			return this.Ji[b]
		};
		V.Zv = function(a) {
			var b = this.fb(zl);
			b[E](Al, to);
			b[E](Vo, Ae);
			b[E](Yo, Ae);
			b[E](To, Oe);
			b[E](Bj, Oe);
			b[E](Lo, Ce);
			var c = this.fb(Zl);
			c[E](Vo, Ae);
			c[E](Yo, Ae);
			c[E](To, Oe);
			c[E](Bj, Oe);
			c[E](Ri, a.xe);
			b[t](c);
			c = this.fb(nj);
			c[E](qn, a.ye);
			c[E](sn, dn);
			a = this.fb(Ak);
			a[E](Wo, Ne);
			a[E](Zo, Ae);
			a[E](Xo, Oe);
			a[E]($o, Ne);
			a[E](un, Ne);
			c[t](a);
			a = this.fb(Ak);
			a[E](Wo, Ae);
			a[E](Zo, Ne);
			a[E](Xo, Ne);
			a[E]($o, Oe);
			a[E](un, Ne);
			c[t](a);
			b[t](c);
			return b
		};

		function Mt(a, b) {
			switch (a) {
				case $m:
					return Ae;
				case oi:
					return S + 4 * b + ge + (S + b);
				default:
					return Mt($m, b)
			}
		};

		function Nt(a) {
			this.$d = a
		}

		function Ot(a, b, c) {
			a = ep(b, a);
			return W(a) && pp(c) ? c(a) : a
		}
		V = Nt[K];
		V.R = function(a, b, c) {
			for (var d = l, e = 0; e < this.$d[I]; e++) {
				a: {
					var d = this.$d[e],
						f = a,
						g = c;
					if (np(f)) d = Ot(d, f, g);
					else {
						for (var i = 0; i < f[I]; ++i) {
							var j = Ot(d, f[i], g);
							if (W(j)) {
								d = j;
								break a
							}
						}
						d = l
					}
				}
				if (W(d)) return d
			}
			d = b;
			return hp(d) ? d : l
		};
		V.fi = function(a, b, c) {
			for (var b = W(b) ? sq(b) : {}, d = this.$d[I] - 1; 0 <= d; d--) {
				var e = b,
					f = this.$d[d],
					g = a,
					i = c;
				np(g) && (g = [g]);
				for (var j = 0; j < g[I]; ++j) {
					var m = Ot(f, g[j], i) || {};
					vq(e, m)
				}
			}
			return b
		};

		function Pt(a) {
			if (!W(a)) return l;
			if (typeof a == Yg) return a;
			a = S + a;
			return a == Ge || a[fd]() == oo ? k : a == Ae || a[fd]() == Qi ? n : l
		}
		V.za = function(a, b) {
			var c = this.Go(a);
			if (W(c)) return c;
			hp(b) || (b = n);
			return b
		};
		V.Go = function(a) {
			return this.R(a, l, Pt)
		};

		function Qt(a) {
			if (!W(a)) return l;
			if (typeof a == gl) return a;
			a = Gp(S + a);
			return ka(a) ? l : a
		}
		V.be = function(a, b) {
			var c = this.Mc(a);
			if (W(c)) return c;
			hp(b) || (b = 0);
			return b
		};
		V.Mc = function(a) {
			return this.R(a, l, Qt)
		};

		function Rt(a) {
			a = Qt(a);
			return W(a) && 0 <= a ? a : l
		}
		V.da = function(a, b) {
			var c = this.Uk(a);
			if (W(c)) return c;
			hp(b) || (b = 0);
			return b
		};
		V.Uk = function(a) {
			return this.R(a, l, Rt)
		};

		function St(a) {
			return !W(a) ? l : S + a
		}
		V.Hc = function(a, b) {
			hp(b) || (b = S);
			return this.R(a, b, St)
		};
		V.hi = function(a) {
			return this.R(a, l, St)
		};

		function Tt(a) {
			return (a = St(a)) ? a : l
		}
		V.Uc = function(a, b) {
			return this.R(a, b, Tt)
		};

		function Ut(a, b) {
			var c = St(b);
			return rq(a, c) ? c : l
		}
		V.ia = function(a, b, c) {
			return this.R(a, c, Z(Ut, l, b))
		};
		V.Wh = function(a, b) {
			return this.R(a, l, Z(Ut, l, b))
		};
		V.rx = function(a) {
			a = this.R(a, l);
			if (np(a)) {
				var b = a[qc](Ye);
				1 == b[I] && (b = a[qc](ge));
				if (3 == b[I]) {
					var c = Gp(b[0]),
						d = Gp(b[1]),
						b = Gp(b[2]);
					if (0 <= b && 0 <= d && 0 <= c) return [c, d, b]
				}
			}
			return !jp(a) || 3 != a[I] ? l : a
		};
		V.zh = function(a, b) {
			var c = this.fi(a, b, function(a) {
					mp(a) || (a = {
						fill: a
					});
					var b = {},
						c = Tt(a.fill);
					if (W(c)) b.fill = c;
					c = Tt(a.stroke);
					if (W(c)) b.stroke = c;
					c = Rt(a.opacity);
					if (W(c)) b.rb = c;
					c = Rt(a.strokeWidth);
					if (W(c)) b.Qa = c;
					if ((a = a.gradient) && W(a.color1) && W(a.color2) && W(a.x1) && W(a.y1) && W(a
						.x2) && W(a.y2)) c = {}, c.Kd = Tt(a.color1), c.Ld = Tt(a.color2), c.Cb = a.x1,
						c.Db = a.y1, c.gd = a.x2, c.hd = a.y2, b.F = c;
					return b
				}),
				c = new wt(c);
			c.Qg() || (c.Fk(xt.O), c.dk(xt.$b));
			c.pd() || (c.gc(xt.Jb), c.bg(xt.nc));
			return c
		};
		V.vc = function(a, b) {
			return this.fi(a, b, function(a) {
				var b = {},
					e = Tt(a[tb]);
				W(e) && va(b, e);
				e = Tt(a.auraColor);
				if (W(e)) b.$a = e;
				if (e = St(a.fontName)) b.zb = e;
				(e = Rt(a[M])) && Na(b, e);
				e = Pt(a[bc]);
				if (W(e)) b.bold = e;
				e = Pt(a.italic);
				if (W(e)) b.zf = e;
				a = Pt(a.underline);
				if (W(a)) b.$n = a;
				return b
			})
		};
		var Vt = {
			Ay: "multiple",
			Ky: Mm
		};

		function Wt(a, b, c) {
			b || h(r("viscommon: container cannot be null"));
			var d = !!c,
				e = gr(Di, {
					style: Ql
				}),
				c = ns(b, Pl);
			(c == S || c == gn) && ks(b, Pl, am);
			return {
				addError: function(c) {
					d ? (e[Zc] != b && b[t](e), Xt(a, e, c)) : Xt(a, b, c)
				},
				Ty: function(c) {
					d ? (e[Zc] != b && b[t](e), Yt(a, e, c)) : Yt(a, b, c)
				},
				removeAll: function() {
					d ? google[wc][Yc][Ic](e) : google[wc][Yc][Ic](b)
				}
			}
		}

		function Xt(a, b, c) {
			var d = {
					removable: n,
					type: Oi
				},
				b = google[wc][Yc].addError(b, c, l, d);
			google[wc][eb][Xa](a, Oi, {
				id: b,
				message: c,
				detailedMessage: S,
				options: d
			})
		}

		function Yt(a, b, c) {
			var d = {
					removable: k,
					type: Ro
				},
				b = google[wc][Yc].addError(b, c, l, d);
			google[wc][eb][Xa](a, Oi, {
				id: b,
				message: c,
				detailedMessage: S,
				options: d
			})
		};

		function Zt(a) {
			It[N](this, a);
			this.dh = l
		}
		xp(Zt, It);
		V = Zt[K];
		V.hq = function(a, b) {
			oa(this, a);
			Ua(this, b);
			var c = this.xb(Di);
			this.Td(c, -5E4, -5E4, this[w] + 1E5, this[Q] + 1E5);
			this.Nc[gb](Gh)[t](c);
			var d = this.ja(),
				e = d.q();
			e.id = Fh;
			e.coordorigin = Be;
			e.coordsize = a + id + b;
			e[zc].top = 5E4;
			xa(e[zc], 5E4);
			c[t](e);
			return d
		};
		qa(V, function(a) {
			return s[z](a)
		});
		V.Uh = function(a, b, c, d) {
			var e = this.xb(yo),
				f = 2 * c;
			this.Td(e, a - c, b - c, f, f);
			this.Ec(e, d, n);
			return e
		};
		V.wq = function(a, b, c, d, e) {
			var f = this.xb(yo);
			this.Td(f, a - c, b - d, 2 * c, 2 * d);
			this.Ec(f, e, n);
			return f
		};
		V.ne = function(a, b, c, d, e) {
			var f = this.xb(Ao),
				g = e.Af() && 1 <= d && 1 <= c && !W(e.F);
			this.Ec(f, e, g);
			if (e.pd() || g) c = s.max(c - 1, 0), d = s.max(d - 1, 0);
			this.Td(f, a, b, c, d);
			return f
		};
		V.tq = function(a, b) {
			for (var c = this.xb(Bo), d = this.xb(zo); 0 < a[I] && 0 == Jp(a)[Jc](If, 0);) a = $p(a, 0, a[
				I] - 1);
			d[E](uo, a[cd](S));
			this.Td(c, 0, 0, this[w], this[Q]);
			c[t](d);
			this.Ec(c, b, n);
			return c
		};
		V.xq = function(a, b, c, d, e, f, g) {
			b = Gt(b, d, e);
			c = Gt(c, g[M], f);
			f = Eh;
			c = Ht(c[O], c.end, f);
			return this.Yi(a, b[O], c, b.end, c, e, f, g)
		};
		V.Yi = function(a, b, c, d, e, f, g, i) {
			var j = new wt({
				fill: i[tb]
			});
			if (i[tb] && i[tb] != U && i.$a && i.$a != U) {
				var m = new wt({
						fill: i[tb],
						stroke: i.$a,
						Qa: 2
					}),
					o = this.ja();
				this.Yg(a, b, c, d, e, f, g, i, m, o);
				this.Yg(a, b, c, d, e, f, g, i, j, o);
				return o.q()
			}
			return this.Xg(a, b, c, d, e, f, g, i, j)
		};
		V.Zi = function(a, b, c, d, e, f, g, i) {
			var e = sr(e),
				d = Gt(b, d, f),
				b = new wr(b, c),
				j = new wr(d[O], c),
				j = j[Dc]().pq(b)[xc](e).add(b),
				c = new wr(d.end, c),
				c = c[Dc]().pq(b)[xc](e).add(b);
			return this.Yi(a, j.x, j.y, c.x, c.y, f, g, i)
		};
		V.Xg = function(a, b, c, d, e, f, g, i, j) {
			var m = this.xb(Bo);
			this.Td(m, 0, 0, this[w], this[Q]);
			if (g != Eh) g = Gt(0, i[M], g), g = Ht(g[O], g.end, Eh), g = new wr(0, g), g[xc](sr(rr(180 * s[
					Db](e - c, d - b) / s.PI))), c = new wr(b, c), e = new wr(d, e), c.add(g), e.add(g), b =
				c.x, c = c.y, d = e.x, e = e.y;
			b = s[z](b);
			c = s[z](c);
			d = s[z](d);
			e = s[z](e);
			g = this.xb(zo);
			g[E](uo, If + b + ge + c + Gf + d + ge + e + zf);
			g[E](In, oo);
			b = this.xb(Do);
			b[E](kl, oo);
			d = b[zc];
			Na(d, i[M]);
			ra(d, i.zb);
			switch (f) {
				case fn:
					d[E](vo, hk);
					break;
				case Eh:
					d[E](vo, Eh);
					break;
				case Ni:
					d[E](vo, hm)
			}
			if (i[bc]) d.fontWeight =
				Xg;
			if (i.zf) d.fontStyle = bk;
			b[E](pn, a);
			m[t](g);
			m[t](b);
			this.Ec(m, j, n);
			return m
		};
		V.Yg = function(a, b, c, d, e, f, g, i, j, m) {
			a = this.Xg(a, b, c, d, e, f, g, i, j);
			this[t](m, a);
			return a
		};
		V.Lp = function() {
			var a = this.xb(xo);
			this.Td(a, 0, 0, this[w], this[Q]);
			return a
		};
		V.en = function(a, b) {
			var c = this.xb(Di),
				d = [this.Gb(5E4 + b.top), this.Gb(5E4 + b[C] + b[w]), this.Gb(5E4 + b.top + b[Q]), this.Gb(
					5E4 + b[C])];
			c[zc].clip = $l + d[cd](ie) + fe;
			this.Td(c, 0, 0, this[w] + 1E5, this[Q] + 1E5);
			a.q();
			d = new Dt(c);
			this[t](d, a);
			this.Wa(1, 1, 1, 1, new wt({
				fill: So
			}), d);
			return c
		};
		V.Yo = function(a, b, c) {
			a[v](If + s[z](b) + ge + s[z](c))
		};
		V.Xo = function(a, b, c) {
			a[v](Gf + s[z](b) + ge + s[z](c))
		};
		V.Wo = function(a, b, c, d, e, f, g) {
			a[v](tf + s[z](b) + ge + s[z](c) + ge + s[z](d) + ge + s[z](e) + ge + s[z](f) + ge + s[z](g))
		};
		V.Vo = function(a) {
			a[v]($f)
		};
		V.Uo = function(a, b, c, d, e, f, g, i) {
			var f = rr(f),
				g = rr(g),
				j = s[z](d * s.cos(sr(f - 90))),
				m = s[z](e * s.sin(sr(f - 90))),
				o = s[z](d * s.cos(sr(g - 90))),
				q = s[z](e * s.sin(sr(g - 90))),
				d = s[z](d),
				e = s[z](e),
				b = s[z](b),
				c = s[z](c);
			if (!(j === o && m === q) || !(i && 180 > rr(g - f) || !i && 180 > rr(f - g))) a[v]((i ? Xf :
				pf) + (b - d) + ge + (c - e) + ge + (b + d) + ge + (c + e) + ge + (b + j) + ge + (
				c + m) + ge + (b + o) + ge + (c + q))
		};
		V.Kg = function(a, b, c) {
			a[zc].top = this.Gb(c);
			xa(a[zc], this.Gb(b))
		};
		V.Qk = function(a, b) {
			oa(a[zc], this.Gb(b))
		};
		V.no = function(a, b) {
			xa(a[zc], this.Gb(b))
		};
		V.gc = function(a, b, c) {
			if (0 == c) ua(a, n);
			else {
				ua(a, k);
				if (b) a.strokecolor = b;
				a.strokeweight = c
			}
		};
		V.Rp = function(a, b) {
			var c = this.dh;
			if (c == l) {
				var c = this.xb(Di),
					d = c[zc];
				Ta(d, U);
				Ia(d, lg);
				d.top = this.Gb(this[Q] + 10);
				xa(d, this.Gb(this[w] + 10));
				d.whiteSpace = el;
				d = this.Nc;
				c[t](d[lb](id));
				d[Bc][t](c);
				this.dh = c
			}
			c[Gb].data = a;
			d = c[zc];
			ra(d, b.zb);
			Na(d, this.Gb(b[M] || 0));
			d.fontWeight = b[bc] ? Xg : S;
			d.fontStyle = b.zf ? bk : S;
			Ta(d, Vg);
			var e = c[kc],
				c = c[Mc];
			Ta(d, U);
			b[bc] && (e *= 1.1);
			b.zf && (e *= 0.9);
			return new lq(e, c)
		};
		V.Gb = function(a) {
			return s[z](a) + Ul
		};
		V.xb = function(a) {
			return this.Nc[Bb](a)
		};
		V.Ec = function(a, b, c) {
			for (var d = a.children, e = 0; e < d[I]; e++)(a.children[e][Vc] == Ri || a.children[e][Vc] ==
				qn) && a[Cc](d[e]);
			c = W(c) ? c : k;
			if (b.pd()) {
				if (ua(a, k), a.strokeweight = b.H, a.strokecolor = b.Jb, c = !b.fo(), d = b.ho(), c || d) {
					e = this.xb(Co);
					if (c) e.opacity = S + s[z](100 * b.nc) + Yd;
					d && (e.dashstyle = $t(b.jd));
					a[t](e)
				}
			} else c && b.Af() ? (ua(a, k), a.strokeweight = 1, a.strokecolor = b.O) : ua(a, n);
			if (hp(a.filled)) a.filled = k;
			c = b.F;
			if (W(b.F)) {
				b = this.xb(wo);
				b[E](Yh, c.Kd);
				b[E](Zh, c.Ld);
				var d = c.Cb,
					e = c.Db,
					f = c.gd,
					c = c.hd;
				typeof d == pn && (d = ga(d,
					10));
				typeof e == pn && (e = ga(e, 10));
				typeof f == pn && (f = ga(f, 10));
				typeof c == pn && (c = ga(c, 10));
				c = rr(180 * s[Db](c - e, f - d) / s.PI);
				c = qr(270 - c, 360);
				b[E](mg, c);
				b[E](po, sj);
				a[t](b)
			} else b.Ea ? (b = this.Xs(b.Ea), a[t](b)) : b.O == U ? a.filled = n : b.Af() ? a.fillcolor = b
				.O : (c = this.xb(wo), c.opacity = S + s[z](100 * b.$b) + Yd, va(c, b.O), a[t](c))
		};
		V.Xs = function(a) {
			var b = this.xb(wo);
			b[E](po, zl);
			b[E](Yh, a.ye);
			b[E](Zh, a.xe);
			var c = ep(qj);
			W(c) || (c = Jj);
			var d = ep(rj);
			W(d) || (d = He);
			b[E](en, c + ze + d + ye + a.ze + qe);
			return b
		};
		V.Td = function(a, b, c, d, e) {
			a = a[zc];
			Ia(a, lg);
			xa(a, this.Gb(b));
			a.top = this.Gb(c);
			oa(a, this.Gb(d));
			Ua(a, this.Gb(e))
		};

		function $t(a) {
			switch (a) {
				case $m:
					return $m;
				case oi:
					return Hm;
				default:
					return $t($m)
			}
		};

		function au(a, b) {
			(Hq ? 0 <= Fp(Uq, Qe) : Iq ? 0 <= Fp(Uq, Ie) : Gq ? 0 <= Fp(Uq, We) : Jq && 0 <= Fp(Uq, Pe)) || h(
				"Graphics is not supported");
			for (var c = s[B](1E5 * s.random()); da.frames[yf + c];) c++;
			this.xl = yf + c;
			this.wb = a;
			this.Wd = br(this.wb);
			this.Nb = l;
			c = !Hq ? n : W(ja[Pc]) ? 9 > ja[Pc] : !Wq(Ve);
			this.Qv(b, c);
			bu(Z(this.Sv, this), Z(this.Rv, this, c))
		}
		xp(au, zr);
		V = au[K];
		V.Rv = function(a) {
			var b = this.Lw();
			this.Nb = a ? new Zt(b) : new Lt(b)
		};
		V.Sv = function() {
			var a = this.px();
			return a && a._loaded
		};
		V.Og = function(a) {
			var b = Z(function() {
					return W(this.Nb)
				}, this),
				c = Z(function() {
					a(this.Nb)
				}, this);
			bu(b, c)
		};
		V.tt = function(a) {
			var b = this.cm();
			b && (oa(b, a[w][ac]()), Ua(b, a[Q][ac]()))
		};
		V.Lw = function() {
			var a = this.cm();
			return a ? a[Wc] || a[Ub][nc] : l
		};
		V.px = function() {
			var a = this.cm();
			return a ? a[Ub] || (a[Wc] || a[Ub][nc])[Ob] || (a[Wc] || a[Ub][nc])[Rb] : l
		};
		V.cm = function() {
			return this.Wd.q(this.xl)
		};
		V.Qv = function(a, b) {
			var c = this.Wd[Bb](Nj);
			c.name = this.xl;
			c.id = this.xl;
			oa(c, a[w][ac]());
			Ua(c, a[Q][ac]());
			c.frameBorder = 0;
			c.scrolling = dl;
			c.marginHeight = 0;
			c.marginWidth = 0;
			c.allowTransparency = oo;
			b || Aa(c, Oj);
			this.wb.innerHTML = S;
			this.Wd[t](this.wb, c);
			c = c[Wc] || c[Ub][nc];
			c.open();
			var d = [];
			b ? (d[v](hf), d[v](gf), d[v](lf)) : (d[v](df), d[v](jf), d[v](rd), d[v](sd), d[v](gf));
			d[v](kf);
			d[v](Jo);
			d[v](mj);
			d[v](nd);
			d[v](cp);
			d[v](cf);
			d[v](af);
			d[v](ef);
			d[v](pd);
			d[v](mf);
			d[v](ff);
			d[v]($e);
			d[v](bf);
			c.write(d[cd](gd));
			c[Ac]()
		};

		function bu(a, b, c) {
			hp(c) || (c = 50);
			a[N]() ? b[N]() : da[mc](function() {
				bu(a, b, c)
			}, c)
		}
		V.lb = function() {
			this.Nb && this.Nb[Pb]();
			this.Nb = l;
			this.Wd.Ng(this.wb)
		};

		function cu(a) {
			return a * a * a
		}

		function du(a) {
			return 1 - s.pow(1 - a, 3)
		}

		function eu(a) {
			return 3 * a * a - 2 * a * a * a
		};
		var fu = {
			LINEAR: Dk,
			jy: Pj,
			By: ol,
			ky: Qj
		};

		function gu(a) {
			switch (a) {
				case Dk:
					return function(a) {
						return a
					};
				case Pj:
					return cu;
				case ol:
					return du;
				case Qj:
					return eu
			}
		};

		function hu() {
			this.eb = []
		}
		V = hu[K];
		V.ac = function(a, b) {
			this.eb[v]({
				b: a,
				vk: b
			})
		};
		V.move = function(a, b) {
			this.ac(l, {
				type: Zk,
				data: {
					x: a,
					y: b
				}
			})
		};
		V.G = function(a, b, c) {
			this.ac(a, {
				type: Ak,
				data: {
					x: b,
					y: c
				}
			})
		};
		V.pi = function(a, b, c, d, e, f, g) {
			this.ac(a, {
				type: ji,
				data: {
					Cb: b,
					Db: c,
					gd: d,
					hd: e,
					x: f,
					y: g
				}
			})
		};
		V.jb = function(a, b, c, d, e, f, g, i) {
			this.ac(a, {
				type: Bg,
				data: {
					ml: b,
					nl: c,
					ol: d,
					pl: e,
					Ho: f,
					ql: g,
					Io: i
				}
			})
		};
		V.close = function(a) {
			var b = this.eb[0].vk[A];
			this.G(a, b.x, b.y)
		};

		function iu(a) {
			switch (a[F]) {
				case Zk:
				case Ak:
				case ji:
					return a = a[A], new $(a.x, a.y);
				case Bg:
					var a = a[A],
						b = rr(a.ql);
					return new $(a.ml + a.ol * s.cos(sr(b - 90)), a.nl + a.pl * s.sin(sr(b - 90)))
			}
		}
		V.jt = function() {
			for (var a = [], b = l, c = 0; c < this.eb[I]; c++) {
				var d = this.eb[c],
					e = d.vk;
				if (e[F] == Zk) b = iu(e);
				else {
					d = d.b;
					a: {
						for (var f = 0; f < a[I]; f++) {
							var g = a[f];
							if (d === g.b || (d == l || g.b == l ? 0 : d.O == g.b.O && d.$b == g.b.$b &&
									d.Jb == g.b.Jb && d.H == g.b.H && d.nc == g.b.nc && d.jd == g.b
									.jd && (d.F === g.b.F || (d.F == l || g.b.F == l ? 0 : d.F.Kd == g.b
											.F.Kd && d.F.Ld == g.b.F.Ld && d.F.Cb == g.b.F.Cb && d.F
											.Db == g.b.F.Db && d.F.gd == g.b.F.gd && d.F.hd == g.b.F.hd
											)) && (d.Ea === g.b.Ea || (d.Ea == l || g.b.Ea == l ? 0 : d
										.Ea.xe == g.b.Ea.xe && d.Ea.ye == g.b.Ea.ye && d.Ea.ze == g
										.b.Ea.ze)))) {
								d =
									g;
								break a
							}
						}
						g = {
							b: d,
							eb: new Et,
							ob: l
						};a[v](g);d = g
					}
					iq(d.ob, b) || d.eb[rb](b.x, b.y);
					d.eb.ac(e);
					b = d.ob = iu(e)
				}
			}
			return a
		};
		V.oe = function(a) {
			var b = this.jt();
			if (0 == b[I]) a = l;
			else if (1 == b[I]) a = a.oe(b[0].eb, b[0].b);
			else {
				for (var c = a.ja(), d = 0; d < b[I]; d++) {
					var e = b[d],
						e = a.oe(e.eb, e.b);
					a[t](c, e)
				}
				a = c.q()
			}
			return a
		};
		V.yn = function() {
			for (var a = new Et, b = 0; b < this.eb[I]; b++) a.ac(this.eb[b].vk);
			return a
		};

		function ju(a) {
			this.$d = gq({}, a);
			this.Xl = gq({}, a)
		}
		ju[K].Lb = function(a, b) {
			var c = this.$d[I];
			this.$d[a] = b;
			for (var d = a; d < c; ++d) this.Xl[d] = this.Wl(0 == d ? {} : this.Xl[d - 1], this.$d[d])
		};
		ju[K].qq = function(a) {
			var b = gp(a);
			return b != il && b != Fg || b == il && pp(a[Dc]) || lp(a)
		};
		ju[K].Wl = function(a, b) {
			if (this.qq(b) || this.qq(a) || gp(b) == Fg) return b;
			if (gp(a) == il) {
				var c = sq(a);
				mq(b, function(b, e) {
					c[e] = !(e in a) || a[e] == l ? b : this.Wl(a[e], b)
				}, this)
			} else c = Yp(a), mq(b, function(b, e) {
				c[e] = this.Wl(a[e], b)
			}, this);
			return c
		};
		ju[K].compact = function() {
			return Jp(this.Xl)
		};

		function ku(a, b, c) {
			var d = b.ja(),
				e = a.outline,
				f = new Et,
				g = new hs(e.p.top + 0.5, e.p[R] + 0.5, e.p[P] + 0.5, e.p[C] + 0.5),
				i = e.Eb;
			f[rb](g[C] + 1, g[P]);
			f.jb(g[C] + 1, g[P] - 1, 1, 1, 180, 270, k);
			f.G(g[C], g.top + 1);
			f.jb(g[C] + 1, g.top + 1, 1, 1, 270, 0, k);
			if (W(i) && i[0].y == e.p.top)
				for (var j = 0; 3 > j; ++j) f.G(i[j].x + 0.5, i[j].y + 0.5);
			f.G(g[R] - 1, g.top);
			f.jb(g[R] - 1, g.top + 1, 1, 1, 0, 90, k);
			f.G(g[R], g[P] - 1);
			f.jb(g[R] - 1, g[P] - 1, 1, 1, 90, 180, k);
			if (W(i) && i[0].y == e.p[P])
				for (j = 0; 3 > j; ++j) f.G(i[j].x + 0.5, i[j].y + 0.5);
			f[Ac]();
			e = [new wt({
					fill: So,
					stroke: Hd,
					Qa: 1
				}),
				new wt({
					fill: Hd,
					Qa: 0,
					rb: 0.6
				}), new wt({
					fill: Hd,
					Qa: 0,
					rb: 0.4
				})
			];
			for (g = e[I] - 1; 0 <= g; --g) i = b.xa(f, e[g], d), b.Kg(i, g, g);
			a = a.Gs;
			for (f = 0; f < a.pc[I]; f++) switch (i = a.pc[f], e = i[pb], g = i.x, i = i.y, e[F]) {
				case An:
					b.rh(e[A][x], g, i, 1, fn, fn, e[A][zc], d);
					break;
				case dn:
					var e = e[A],
						j = b,
						m = d,
						o = new wt({
							fill: e[tb]
						});
					j.Wa(g, i, e[hc], e[hc], o, m)
			}
			b[t](c, d);
			return d
		};

		function lu(a, b) {
			if (!W(a) && !W(b)) return a === b;
			if (a === b) return k;
			var c = gp(a),
				d = gp(b);
			if (c != d) return n;
			var d = lp(a),
				e = lp(b);
			if (d != e) return n;
			switch (c) {
				case il:
					if (d && e) return 0 == a[Vb]() - b[Vb]();
					for (var f in a)
						if (a[yc](f) && (!b[yc](f) || !lu(a[f], b[f]))) return n;
					for (var g in b)
						if (b[yc](g) && !a[yc](g)) return n;
					return k;
				case Fg:
					if (a[I] != b[I]) return n;
					for (c = 0; c < a[I]; ++c)
						if (!lu(a[c], b[c])) return n;
					return k;
				case T:
					return k;
				case pn:
				case gl:
				case Yg:
					return n;
				default:
					h(r("Error while comparing " + a + " and " + b + ": unexpected type of obj1 " +
						c))
			}
		}

		function mu(a) {
			if (lp(a)) {
				var b = new Date;
				b[Qc](a.valueOf());
				return b
			}
			var c = gp(a);
			if (c == il || c == Fg) {
				if (a[Dc]) return a[Dc]();
				c = c == Fg ? [] : {};
				for (b in a) c[b] = mu(a[b]);
				return c
			}
			return a
		};

		function nu(a) {
			var b = a[Hc] ? a[Hc] : {
				x: 0,
				y: 0
			};
			return Pp(a.d, function(c, d) {
				var e = Gt(d.x + b.x, d[I], a.Za),
					f = Gt(d.y + b.y, a.t[M], a.Pa),
					e = new hs(f[O], e.end, f.end, e[O]);
				c ? c.Gn(e) : c = e;
				return c
			}, l)
		};
		var ou = {
				NONE: U,
				Dy: Dl,
				jx: T,
				mx: rm,
				Tx: oh
			},
			pu = {
				NONE: U,
				kx: Ak,
				gx: Cg,
				Ly: hn,
				hx: Pg,
				Vx: wh,
				mx: rm,
				Ux: sh
			},
			qu = {
				hx: Pg,
				My: kn,
				Sx: nh,
				POINTS: Nl,
				kx: Ak,
				gx: Cg,
				NONE: U
			},
			ru = {
				ix: xh,
				uq: Ho,
				Wx: Bh
			},
			su = {
				Ey: Sl,
				ry: Nk,
				ey: Pi
			},
			tu = {
				NONE: U,
				Gy: hm,
				ny: hk,
				Ny: io,
				Qx: jh,
				Qc: Pj,
				my: gk
			},
			uu = {
				Py: Ko,
				gy: Gj
			},
			vu = {
				NONE: U,
				Qc: Pj,
				ri: ol
			},
			wu = {
				Rx: lh,
				Oy: qo
			},
			xu = {
				fy: Fj,
				qy: Ik
			},
			yu = {
				NONE: U,
				ly: ek,
				uq: Ho,
				lx: Bl
			},
			zu = {
				vp: ih,
				uq: Ho,
				lx: Bl
			},
			Au = {
				by: yi,
				cy: Ei
			},
			Bu = {
				Zx: ri,
				ix: xh,
				Jy: ym
			},
			Cu = {
				NONE: U,
				iy: Hj
			},
			Du = {
				NONE: U,
				jx: T,
				Cy: Cl,
				Xx: Wh
			},
			Eu = {
				Px: Hg,
				Ox: Gg
			},
			Fu = [{
					color: "#3366CC",
					lighter: "#45AFE2"
				},
				{
					color: "#DC3912",
					lighter: "#FF3300"
				}, {
					color: "#FF9900",
					lighter: "#FFCC00"
				}, {
					color: "#109618",
					lighter: "#14C21D"
				}, {
					color: "#990099",
					lighter: "#DF51FD"
				}, {
					color: "#0099C6",
					lighter: "#15CBFF"
				}, {
					color: "#DD4477",
					lighter: "#FF97D2"
				}, {
					color: "#66AA00",
					lighter: "#97FB00"
				}, {
					color: "#B82E2E",
					lighter: "#DB6651"
				}, {
					color: "#316395",
					lighter: "#518BC6"
				}, {
					color: "#994499",
					lighter: "#BD6CBD"
				}, {
					color: "#22AA99",
					lighter: "#35D7C2"
				}, {
					color: "#AAAA11",
					lighter: "#E9E91F"
				}, {
					color: "#6633CC",
					lighter: "#9877DD"
				}, {
					color: "#E67300",
					lighter: "#FF8F20"
				},
				{
					color: "#8B0707",
					lighter: "#D20B0B"
				}, {
					color: "#651067",
					lighter: "#B61DBA"
				}, {
					color: "#329262",
					lighter: "#40BD7E"
				}, {
					color: "#5574A6",
					lighter: "#6AA7C4"
				}, {
					color: "#3B3EAC",
					lighter: "#6D70CD"
				}, {
					color: "#B77322",
					lighter: "#DA9136"
				}, {
					color: "#16D620",
					lighter: "#2DEA36"
				}, {
					color: "#B91383",
					lighter: "#E81EA6"
				}, {
					color: "#F4359E",
					lighter: "#F558AE"
				}, {
					color: "#9C5935",
					lighter: "#C07145"
				}, {
					color: "#A9C413",
					lighter: "#D7EE53"
				}, {
					color: "#2A778D",
					lighter: "#3EA7C6"
				}, {
					color: "#668D1C",
					lighter: "#97D129"
				}, {
					color: "#BEA413",
					lighter: "#E9CA1D"
				},
				{
					color: "#0C5922",
					lighter: "#149638"
				}, {
					color: "#743411",
					lighter: "#C5571D"
				}
			],
			Gu = {
				vAxis: {
					titleTextStyle: {
						color: "#222",
						italic: k
					}
				},
				hAxis: {
					titleTextStyle: {
						color: "#222",
						italic: k
					}
				},
				sizeAxis: {
					minSize: 5,
					maxSize: 30
				},
				fontName: "Arial",
				titleTextStyle: {
					color: Ug,
					bold: k
				},
				bubble: {
					textStyle: {
						color: Ug
					}
				},
				annotations: {
					textStyle: {
						color: zm
					},
					domainTextStyle: {
						color: "#222"
					},
					stemColor: "#999"
				},
				majorAxisTextColor: "#222",
				minorAxisTextColor: "#444",
				backgroundColor: {
					fill: Sd,
					stroke: "#666",
					strokeWidth: 0
				},
				axisBackgroundColor: {
					fill: U
				},
				tooltip: {
					textStyle: {
						color: Ug
					}
				},
				baselineColor: "#333",
				gridlineColor: Hd,
				pieSliceBorderColor: So,
				pieResidueSliceColor: Hd,
				pieSliceTextStyle: {
					color: So
				},
				areaOpacity: 0.3,
				intervals: {
					style: Pg,
					color: Am,
					lineWidth: 1,
					fillOpacity: 0.3,
					barWidth: 0.25,
					shortBarWidth: 0.1,
					boxWidth: 0.25,
					pointSize: 6
				},
				legend: {
					textStyle: {
						color: "#222"
					},
					pagingTextStyle: {
						color: "#01c"
					},
					scrollArrows: {
						activeColor: "#01c",
						inactiveColor: Hd
					}
				}
			};

		function Hu(a) {
			return a[cd](me)
		};

		function Iu(a, b, c, d, e) {
			W(e) || (e = 1);
			if (0 == e) return {
				d: [],
				aa: n,
				Yb: 0
			};
			var f = [],
				b = Ju(b, f, d, e, function(b) {
					return a(b, c)[w]
				});
			return {
				d: f,
				aa: b.Fe,
				Yb: b.Yb
			}
		}

		function Ju(a, b, c, d, e) {
			var f = e(a);
			if (f <= c) return a && b[v](a), {
				Fe: n,
				Yb: f
			};
			if (1 < d) {
				for (var g = 0, i = 0, f = 1; f < a[I]; f++)
					if (a[ib](f) == id) {
						var j = e(a[Zb](0, f));
						if (j <= c) i = j, g = f;
						else break
					} if (0 < g) return b[v](a[Zb](0, g)), b = Ju(a[Zb](g + 1), b, c, d - 1, e), {
					Fe: b.Fe,
					Yb: s.max(i, b.Yb)
				}
			}
			d = e(ne);
			if (c < d) {
				for (f = 2; 1 <= f; f--)
					if (a = e("..." [Zb](0, f)), a <= c) return b[v]("..." [Zb](0, f)), {
						Fe: k,
						Yb: a
					};
				return {
					Fe: k,
					Yb: 0
				}
			}
			for (f = a[I] - 1; 1 <= f; f--)
				if (i = a[Zb](0, f) + ne, g = e(i), g <= c) return b[v](i), {
					Fe: k,
					Yb: g
				};
			b[v](ne);
			return {
				Fe: k,
				Yb: d
			}
		}

		function Ku(a) {
			var b = {
				background: Sj,
				padding: Le,
				border: Me
			};
			if (W(a[M])) Na(b, a[M] + Ul), b.margin = a[M] + Ul;
			W(a.zb) && ra(b, a.zb);
			return b
		};
		var Lu = s.log(10);

		function Mu(a, b) {
			return s.abs(a - b)
		}

		function Nu(a, b, c, d) {
			if (!a || !b) return k;
			var e = d || Mu;
			return oq(a, function(a, d) {
				var i = b[d];
				return !hp(b[d]) || e(a, i) <= c
			})
		}

		function Ou(a, b, c) {
			if (0 == a.x || 0 == b.x) return {
				x: 0,
				y: (0 == a.x && 0 == b.x ? 0 : 0 == a.x ? a.y : b.y) * c / 6
			};
			c = c / 3 * s.min(s.abs(a.x), s.abs(b.x));
			b = (a.y / a.x + b.y / b.x) / 2;
			return 0 < a.x ? {
				x: c,
				y: c * b
			} : {
				x: -c,
				y: -c * b
			}
		}

		function Pu(a, b, c) {
			var d = a.Aq(),
				e = b.Aq();
			if (0 == d || 0 == e) return new wr(0, 0);
			d = s[Ib](d / e);
			return xr(a[Dc]()[Rc](1 / d), b[Dc]()[Rc](d))[Rc](c / 6)
		}

		function Qu(a, b, c, d, e) {
			for (var c = c ? Ou : Pu, f = [], g = 0; g < a[I]; ++g) {
				var i, j;
				e ? (i = Ru(a, g, 1, d), j = Ru(a, g, -1, d)) : (i = d ? (g + 1) % a[I] : g + 1, j = d ? (a[I] +
					g - 1) % a[I] : g - 1);
				W(i) && W(j) && W(a[g]) && W(a[j]) && W(a[i]) ? (i = c(yr(a[g], a[j]), yr(a[i], a[g]), b), f[v](
					[yr(a[g], i), xr(a[g], i)])) : W(a[g]) ? f[v]([a[g][Dc](), a[g][Dc]()]) : f[v](l)
			}
			return f
		}

		function Ru(a, b, c, d) {
			var e = b + c;
			for (d && (e = (e + a[I]) % a[I]); e != b && 0 <= e && e < a[I];) {
				if (W(a[e])) return e;
				e += c;
				d && (e = (e + a[I]) % a[I])
			}
			return l
		}

		function Su(a, b, c) {
			var c = c || 0,
				d = Tp(b, function(b) {
					return b[c] > a
				});
			return -1 == d ? b[I] - 1 : 0 == d ? 0 : b[d][c] - a < a - b[d - 1][c] ? d : d - 1
		}

		function Tu(a, b, c, d) {
			d = d || 0;
			c = c || 0;
			if (0 < b[I] && a <= Jp(b)) return c = Su(a, b, d), [c, b[c][d]];
			var e = b[I] - 1 - c,
				f = Jp(b)[d],
				g = b[e][d],
				i = f - g,
				j = s[B]((a - f) / i),
				a = a - f - j * i,
				e = Op($p(b, e), function(a) {
					return [a[d] - g]
				}),
				a = Su(a, e, 0);
			return [b[I] - 1 + j * c + a, f + j * i + e[a][0]]
		}

		function Uu(a, b, c) {
			for (var d = [], e = 0; e < a; e++) d[e] = b[N](c, e);
			return d
		}

		function Vu(a) {
			return W(a.max) ? a.max : a.min
		}

		function Wu(a, b, c, d) {
			hp(c) || (c = 0);
			hp(d) || (d = a[I]);
			for (var c = b - c, e = 0, f = 0 <= c ? 0 : l, g = 0, i = 0, j = l, m = l; e < a[I];) {
				var o = a[e].min,
					q = Vu(a[e]) - o,
					g = g + o;
				if (g <= c) var f = e + 1,
					u = s.min(c - g, q),
					i = g + u,
					m = o + u;
				if (g > b) return e >= d ? {
					Gc: e,
					El: j,
					oh: b - (g - o)
				} : ip(f) ? l : {
					Gc: f,
					El: m,
					oh: c - i
				};
				u = s.min(b - g, q);
				g += u;
				j = o + u;
				e++
			}
			return {
				Gc: e,
				El: j,
				oh: b - g
			}
		}

		function Xu(a, b, c) {
			a = Op(a, c || Vs);
			bq(a);
			for (var d = c = 0; d < a[I]; d++) {
				var e = a[I] - d,
					f = (a[d] - c) * e;
				if (f <= b) c = a[d], b -= f;
				else {
					c += b / e;
					b = 0;
					break
				}
			}
			return {
				Pv: c,
				oh: b
			}
		}

		function Yu(a, b, c, d) {
			var e = Wu(a, b, c, d);
			if (!e) return l;
			var b = e.oh,
				c = $p(a, 0, e.Gc),
				d = Pp(c, function(a, b) {
					return s.max(a, b.T[I])
				}, 0),
				f = Op(c, Vu);
			if (0 < f[I]) f[f[I] - 1] = e.El;
			for (var g = 0; g < d; g++) {
				for (var e = Xu(c, b, function(a) {
						return a.T[g] || 0
					}), b = e.oh, i = 0; i < f[I]; i++) f[i] += s.min(e.Pv, a[i].T[g] || 0);
				if (0 == b) break
			}
			return f
		}

		function Zu(a, b, c, d) {
			var e = Yu(a, b, c, d),
				f = {};
			Mp(a, function(a, b) {
				var c = a.key;
				W(f[c]) || (f[c] = []);
				b < e[I] && f[c][v](e[b])
			});
			return f
		}

		function $u(a, b) {
			for (var c = $p(arguments, 1), d = [], e = 0; e < c[I]; e += 2) {
				var f = s.min(c[e], a[I]),
					g = s.min(c[e + 1], a[I]),
					f = $p(a, f, g);
				Zp(d, f)
			}
			return d
		}

		function av(a) {
			var b = google[wc][Tb].DECIMAL_PATTERN;
			if (0 >= a) return b[Zb](0, b[Jc](me));
			for (var b = b[Zb](0, b[Jc](me) + 1), c = 0; c < a; c++) b += ud;
			return b
		}

		function bv(a, b) {
			return np(a) ? [a + me + b] : Op(a, function(a) {
				return a + me + b
			})
		}

		function cv(a, b, c, d, e, f) {
			var g = [],
				i = 0 > d - 1 || 0 > e ? l : c[d - 1][e];
			i && g[v]({
				Li: i,
				ec: i.ec + 1,
				lh: d - 1,
				Mi: l,
				mh: l,
				Ni: l
			});
			(i = 0 > d || 0 > e - 1 ? l : c[d][e - 1]) && g[v]({
				Li: i,
				ec: i.ec + 1,
				lh: l,
				Mi: l,
				mh: e - 1,
				Ni: l
			});
			(c = 0 > d - 1 || 0 > e - 1 ? l : c[d - 1][e - 1]) && f(a[d - 1], b[e - 1]) && g[v]({
				Li: c,
				ec: c.ec,
				lh: d - 1,
				Mi: e - 1,
				mh: e - 1,
				Ni: d - 1
			});
			bq(g, function(a, b) {
				return a.ec - b.ec
			});
			return 0 < g[I] ? g[0] : {
				Li: l,
				ec: 0,
				lh: l,
				Mi: l,
				mh: l,
				Ni: l
			}
		}

		function dv(a, b, c) {
			for (var d = c || function(a, b) {
					return a == b
				}, c = [], e = 0; e <= a[I]; e++) {
				c[e] = c[e] || [];
				for (var f = 0; f <= b[I]; f++) c[e][f] = cv(a, b, c, e, f, d)
			}
			d = {};
			e = {};
			a = c[a[I]][b[I]];
			for (b = a.ec; a;) {
				if (W(a.lh)) d[a.lh] = a.Mi;
				if (W(a.mh)) e[a.mh] = a.Ni;
				a = a.Li
			}
			return {
				ec: b,
				ng: d,
				og: e
			}
		}

		function ev(a, b, c) {
			if (!a || !b) return l;
			var d = {};
			if (0 == a[I] || 0 == b[I]) return d;
			for (var c = c || Vs, e = 0, f = 0; f < a[I]; f++) {
				var g = l,
					i = c(a[f]);
				for (0 == f || c(a[f - 1]); e < b[I];) {
					var j = c(b[e]);
					0 == e || c(b[e - 1]);
					j = s.abs(i - j);
					if (!W(g) || j < g) g = j, d[f] = e, e++;
					else if (j == g) e++;
					else break
				}
				e--
			}
			return d
		}

		function fv(a, b) {
			for (var c in a)
				if (!(0 <= Lp(b, c))) return n;
			return k
		}

		function gv(a, b, c, d, e) {
			for (var f = 1, g = 0; 500 > g; g++) {
				var i = hv(a, b, c, f);
				if (Nu(a, i, 0.05, d)) break;
				a = i;
				f *= e
			}
			return a
		}

		function hv(a, b, c, d) {
			var e = {};
			mq(a, function(f, g) {
				for (var i = f, j = 0; j < b[I]; j++) var m = (0, b[j])(a, g, d),
					i = c(i, m);
				e[g] = i
			});
			return e
		};

		function iv(a) {
			return new wr(s[z](a.x), s[z](a.y))
		}

		function jv(a) {
			return Pp(arguments, xr, new wr(0, 0))
		}

		function kv(a) {
			return Pp(arguments, function(a, c) {
				return new lq(a[w] + c[w], a[Q] + c[Q])
			}, new lq(0, 0))
		}

		function lv(a, b, c) {
			return new wr(s.cos(a) * b, s.sin(a) * c)
		}

		function mv(a) {
			return new wr(a[0], a[1])
		}

		function nv(a, b) {
			return Op([
				[a.x - b[w] / 2, a.y - b[Q] / 2],
				[a.x + b[w] / 2, a.y - b[Q] / 2],
				[a.x + b[w] / 2, a.y + b[Q] / 2],
				[a.x - b[w] / 2, a.y + b[Q] / 2]
			], mv)
		};

		function ov(a, b) {
			this.g = a;
			this.Ia = this.Cc = this.se = l;
			this.Gd = b;
			this.Kc = this.Lg = l
		}
		V = ov[K];
		V.Og = function() {
			return this.g
		};
		V.drawChart = function(a, b) {
			this.Cc = {};
			var c = this.g;
			c[Pb]();
			var d = new ju(2);
			d.Lb(0, a);
			d.Lb(1, b);
			var d = this.Ia = d[ad](),
				e = c.qs(d[w], d[Q]);
			c.ib(e, Fh);
			c.qf(e, ii, Hr);
			c.qf(e, Rh, Z(function(a) {
				return this[ub](Lh, {
					ds: c.Nn(a[Ec])
				}, a)
			}, this));
			var f = d.cj;
			f && !f.xg() && c.Wa(0, 0, d[w], d[Q], f, e);
			d.Pe == ol && this.g.ib(this.yd(d[J], e), Nn);
			this.Kc = c.ja(k);
			this.Kc.ib(ik);
			this.ln(d.f);
			d.f[fc] != Pj && c[t](e, this.Kc);
			this.Mn(d, e) || this.rs(d, e);
			if (d.z) this.Lg = c.ja(n), c[t](e, this.Lg), this.Lg.ib(Vn), this.zc(e.q(), {
				click: yh,
				mousemove: zh,
				mouseout: Ah
			}, l);
			this.se = b
		};
		V.Rt = function(a, b) {
			var c = qq({
				e: l,
				v: l,
				f: l,
				Bc: l
			});
			!fv(b, c) || !fv(this.se, c) ? this.drawChart(a, b) : (lu(b.f, this.se.f) || (this.g.Ng(this
					.Kc), c = new ju(2), c.Lb(0, a.f || {}), c.Lb(1, b.f || {}), this.ln(c[ad]())), this
				.Xn(a, b), this.se = b)
		};
		V.rs = function(a, b) {
			var c = {
				color: Ug,
				zb: a.Tc,
				fontSize: a.uc,
				bold: n,
				zf: n,
				$n: n
			};
			this.dt(Nf, c, a.a[w]);
			var d = a.a.top + s[z](a.a[Q] / 2);
			this.g.ct(Nf, a.a[C], d, a.a[C] + a.a[w], d, Eh, Eh, c, b)
		};
		V.ln = function(a) {
			var b = a.kc;
			if (a.pb && b) {
				for (var c = 0; c < b[I]; c++) {
					var d = b[c];
					d.B && this.Su(d)
				}
				this.Tu(a.qg)
			}
		};
		V.Su = function(a) {
			var b = l;
			a.o && (b = this.yd(a.o, this.Kc), this.g.ib(b, jk + a[ic]));
			var c = l;
			a.P && (c = this.g.Wa(a.P.S[C], a.P.S.top, a.P.S[w], a.P.S[Q], a.P.b, this.Kc), this.g.ib(c,
				jk + a[ic]));
			var d = l;
			a.ba && a.ba.B && (d = this.hs(a.ba.S.x, a.ba.S.y, a.ba.b, this.Kc));
			if (this.Ia.z && a.z) {
				var e = {
					Fh: a[ic]
				};
				if (c) {
					var f = {
						click: tk,
						mouseover: uk,
						mouseout: vk
					};
					this.zc(c, f, e)
				}
				if (a.ba && (b && (f = {
						mouseover: uk,
						mouseout: vk
					}, this.zc(b, f, e)), d)) f.click = bm, this.zc(d, f, e)
			}
		};
		V.Tu = function(a) {
			a && (this.Tp(a.ok, -1), a.nk && this.yd(a.nk, this.Kc), this.Tp(a.mk, 1))
		};
		V.Tp = function(a, b) {
			if (a) {
				var c = this.g.xa(Ft(a[Mb]), a.b, this.Kc);
				this.Ia.z && a.fd && this.zc(c, {
					click: xk
				}, {
					cs: b
				})
			}
		};
		V.hs = function(a, b, c, d) {
			var e = this.g,
				f = e.ja();
			e.Wa(a, b, 12, 12, c, f);
			e[t](d, f);
			c = new Et;
			c[rb](a + 2, b + 2);
			c.G(a + 12 - 2, b + 12 - 2);
			c[rb](a + 12 - 2, b + 2);
			c.G(a + 2, b + 12 - 2);
			a = new wt;
			a.gc(Ud);
			a.ee(2);
			e.xa(c, a, f);
			return f.q()
		};
		V.dt = function(a, b, c) {
			var d = b[M],
				a = this.g.Ju(a, b);
			a > c && (d = s.max(1, s[B](b[M] * c / a)));
			return d
		};
		V.Mk = function(a, b) {
			var c = hp(b) ? b : l,
				c = W(c) ? Hu([Vn, a, c]) : Hu([Vn, a]),
				d = this.Cc[c];
			d && (this.g.tl(d), delete this.Cc[c])
		};
		V.wh = function(a, b, c) {
			var c = hp(c) ? c : l,
				d = ku(a, this.g, this.Lg),
				a = W(c) ? Hu([Vn, b, c]) : Hu([Vn, b]),
				d = d.q();
			this.Cc[a] = d;
			if (this.Ia.z) {
				b = {
					$: b
				};
				if (W(c)) b.Sa = c;
				this.zc(d, {
					click: $n,
					mouseover: bo,
					mouseout: co
				}, b)
			}
		};
		V.Us = function(a) {
			var a = Hu([Ij, a]),
				b = this.Cc[a];
			b && (this.g.tl(b), delete this.Cc[a])
		};
		V.Pm = function(a, b) {
			var c = ku(a, this.g, this.Lg);
			this.Cc[Hu([Ij, b])] = c.q();
			this.Ia.z && this.zc(c.q(), {
				click: $n,
				mouseover: bo,
				mouseout: co
			}, l)
		};
		V.yd = function(a, b, c) {
			(a = this.Sn(a, c)) && this.g[t](b, a);
			return a
		};
		V.Sn = function(a, b) {
			var c = a.d;
			if (!c || 0 == c[I]) return l;
			for (var d = this.g, e = a.t, f = W(a.kf) ? a.kf : 0, g = a[Hc] ? a[Hc] : {
					x: 0,
					y: 0
				}, i = a.K, j = !!i || b || n, m = d.ja(), o = 0; o < c[I]; o++) 0 == f ? d.rh(c[o][x], c[o]
				.x + g.x, c[o].y + g.y, c[o][I], a.Za, a.Pa, e, m) : d.js(c[o][x], c[o].x + g.x, c[o]
				.y + g.y, c[o][I], f, a.Za, a.Pa, e, m);
			if (this.Ia.z && j) {
				j = l;
				if (0 == f) c = nu(a), j = d.Wa(c[C], c.top, c[R] - c[C], c[P] - c.top, xt, m);
				else {
					var q = sr(f),
						c = Pp(c, function(b, c) {
							var d = new wr(c.x + g.x, c.y + g.y);
							d[xc](-q);
							var f = Gt(d.x, c[I], a.Za),
								d = Gt(d.y, e[M], a.Pa),
								f = new hs(d[O], f.end,
									d.end, f[O]);
							b ? b.Gn(f) : b = f;
							return b
						}, l),
						c = [new wr(c[C], c.top), new wr(c[R], c.top), new wr(c[R], c[P]), new wr(c[C], c[
							P])];
					Mp(c, function(a) {
						a[xc](q)
					});
					c = Ft(c, n);
					j = d.xa(c, xt, m)
				}
				i && d.is(j, i, Ku(e))
			}
			return m.q()
		};
		V.zc = function(a, b, c) {
			for (var d in b) this.g.qf(a, d, this.Cu(b[d], c))
		};
		V.Cu = function(a, b) {
			return Z(function(c) {
				return this[ub](a, b, c)
			}, this)
		};
		V.dispatchEvent = function(a, b, c) {
			this.Gd[ub]({
				type: a,
				va: b,
				dd: c
			})
		};
		V.yc = function(a, b, c) {
			var d = this.Cc[b];
			W(d) ? this.g.replaceChild(a, c, d) : this.g[t](a, c);
			this.Cc[b] = c
		};
		V.ak = function(a) {
			var b = this.Cc[a];
			b && (this.g.tl(b), delete this.Cc[a])
		};

		function pv(a, b) {
			return a.i && a.i.b || a.b || b.Hm
		}

		function qv(a) {
			return a[F] == Ak || a[F] == Cg || a[F] == rm
		}

		function rv(a, b) {
			return W(a.gf) ? a.gf : b.vm
		}

		function sv(a, b) {
			return a.i && W(a.i.Xb) ? a.i.Xb : W(a.Xb) ? a.Xb : b.yr
		}

		function tv(a, b) {
			return sv(a, b) + pv(a, b).wo() / 2
		}

		function uv(a) {
			return a.Vc && a.N == T && a[Qb] == Gj
		}

		function vv(a, b) {
			for (var c = new hu, d = k, e = k, f = l, g = l, i = 0; i < a.c[I]; i++) {
				var j = a.c[i];
				if (!j || !j.i || !W(j.i.x) || !W(j.i.y)) e = !b || d;
				else {
					d && (f = i, d = n);
					var m = j.i;
					if (e) c[rb](m.x, m.y), e = n;
					else {
						var o = j.Eg || a.Ha;
						a.ek ? c.pi(o, a.c[g].md.x, a.c[g].md.y, j.ld.x, j.ld.y, m.x, m.y) : c.G(o, m.x, m.y)
					}
					g = i
				}
			}!d & a.wr && (d = b ? g : a.c[I] - 1, f = b ? f : 0, W(d) && W(f) && a.c[d] && a.c[f] && (o = a.c[
				f].Eg || a.Ha, a.ek ? c.pi(o, a.c[d].md.x, a.c[d].md.y, a.c[f].ld.x, a.c[f].ld.y, a
				.c[f].i.x, a.c[f].i.y) : c[Ac](o)));
			return c
		}

		function wv(a) {
			for (var b = new hu, c = k, d = 0; d < a.c[I]; d++) {
				var e = a.c[d].i;
				!W(e.x) || !W(e.y) ? c = k : (c || b.G(a.c[d].Eg || a.Ha, e.Jh, e.Kh), (c || e.Jh != e.Hh || e
					.Kh != e.Ih) && b[rb](e.Hh, e.Ih), c = n)
			}
			return b
		};

		function xv(a, b) {
			ov[N](this, a, b);
			this.la = l;
			this.Gr = [uj, Cg, jn, Ng, yl, Qg, Xj, Ak, vh, oh, rg, Ol, Ll, Ag, Nn, Kg, Lg, ik];
			this.vj = this.tj = this.sj = this.rj = l
		}
		xp(xv, ov);
		var yv = {
			ri: ql,
			Qc: Uj,
			Pc: Uh
		};
		V = xv[K];
		V.Mn = function(a, b) {
			this.Jr(a);
			var c = this.g.ja(n);
			c.ib(Oh);
			this.g[t](b, c);
			mq(this.la, function(a, b) {
				if (!a.ma) a.ma = this.g.ja(!hp(a.Mm) || a.Mm), a.ma.ib(b)
			}, this);
			this.g.Wa(a.a[C], a.a.top, a.a[w], a.a[Q], a.bj, c);
			Mp(a.ta, function(b) {
				this.Hr(a, b)
			}, this);
			Mp(a.Ka, function(b) {
				this.Ir(a, b)
			}, this);
			Mp(a.ta, function(b) {
				this.gn(a, b)
			}, this);
			Mp(a.Ka, function(b) {
				this.gn(a, b)
			}, this);
			a.Pe == Pj && this.yd(a[J], this.la[J].ma);
			a.cg && this.yd(a.cg, this.la.axistitle.ma);
			Mp(a.v, function(a, b) {
				a.Ue && this.lm(a.Ue, l, l, b)
			}, this);
			this.rj = {};
			this.sj = {};
			this.tj = {};
			this.vj = {};
			for (var d = [], e = 0; e < a.e[I]; e++) d[v]({
				Ah: a.e[e].Ah,
				index: e
			});
			dq(d, function(a, b) {
				return cq(a.Ah, b.Ah)
			});
			for (e = 0; e < d[I]; e++) {
				var f = d[e][ic];
				this.Xj(a.e[f], f)
			}
			for (e = 0; e < a.v[I]; e++) a.v[e].kg && this.Pm(a.v[e].kg, e);
			var d = new js(a.a[C], a.a.top, a.a[w], a.a[Q]),
				g = this.g.ja(n),
				d = this.g.en(g, d);
			this.g[t](c, d);
			Mp(this.Gr, function(a) {
				var d = this.la[a].ma;
				if (d) {
					var e;
					switch (this.la[a][fc]) {
						case Uh:
							e = g;
							break;
						case Uj:
							e = c;
							break;
						case ql:
							e = b
					}
					this.g[t](e, d)
				}
			}, this);
			if (!a.z) return k;
			this.g.qf(c,
				Rh, Z(function(a) {
					var b = this.fn(new $(a[Wb], a[Xb]));
					W(b) && this[ub](si, b, a)
				}, this));
			this.g.qf(c, Vk, Z(function(a) {
				var b = this.fn(new $(a[Wb], a[Xb]));
				W(b) ? this[ub](ti, b, a) : this[ub](ui, l, a)
			}, this));
			this.g.qf(c, Wk, Z(function(a) {
				this[ub](ui, l, a)
			}, this));
			return k
		};
		V.Jr = function(a) {
			var b = this.la = {};
			b.annotation = {
				position: yv.Qc
			};
			b.annotationtext = {
				position: yv.Qc
			};
			b.area = {
				position: yv.Pc
			};
			b.bar = {
				position: yv.Pc
			};
			b.baseline = {
				position: yv.Pc
			};
			b.bubble = {
				position: yv.Pc
			};
			b.candlestick = {
				position: yv.Pc
			};
			b.gridline = {
				position: yv.Pc
			};
			b.interval = {
				position: yv.Pc
			};
			b.line = {
				position: yv.Pc
			};
			b.pathinterval = {
				position: yv.Pc
			};
			b.point = {
				position: yv.Qc,
				Mm: !a.z
			};
			b.pointsensitivityarea = {
				position: yv.Qc
			};
			b.steppedareabar = {
				position: yv.Pc
			};
			Ha(b, {
				position: a.Pe == Pj ? yv.Qc : yv.ri
			});
			b.axistick = {
				position: yv.Qc
			};
			b.axistitle = {
				position: a.Vf == Pj ? yv.Qc : yv.ri
			};
			b.legend = {
				ma: a.f[fc] == Pj ? this.Kc : l,
				position: a.f[fc] == Pj ? yv.Qc : yv.ri
			}
		};
		V.fn = function(a) {
			return this.ow(this.rj, a) || this.nw(this.vj, a) || this.$p(this.sj, a) || this.$p(this.tj, a)
		};
		V.ow = function(a, b) {
			var c = b.x,
				d = b.y,
				e = l,
				f = p,
				g;
			for (g in a) {
				var i = a[g],
					j = i.Hb.x,
					m = i.Hb.y,
					o = i.Xb;
				j - c <= o && j - c >= -o && m - d <= o && m - d >= -o && (j = (j - c) * (j - c) + (m - d) *
					(m - d), j <= o * o && j <= f && (e = {
						$: i.$,
						Sa: i.Sa
					}, f = j))
			}
			return e
		};
		V.nw = function(a, b) {
			for (var c in a) {
				var d = a[c];
				if (d[vc][Tc](b) || d.tb[Tc](b)) return {
					$: d.$,
					Sa: d.Sa
				}
			}
			return l
		};
		V.$p = function(a, b) {
			var c = l,
				d;
			for (d in a) {
				var e = a[d];
				if (e[vc][Tc](b) && (!c || e.$ > c.$ || e.$ == c.$ && e.Sa > c.Sa)) c = {
					$: e.$,
					Sa: e.Sa
				}
			}
			return c
		};
		V.Xj = function(a, b) {
			a[F] == sh ? this.$u(a, b) : a[F] == Pg ? this.pp(a, b) : a[F] == hn ? this.pp(a, b) : a[F] ==
				wh ? this.av(a, b) : a[F] == Cg ? this.Zu(a, b, this.Ia.Vc) : this.Sm(a, b, this.Ia.Qe);
			a.hc && a.hc.fk && this.bv(a, b)
		};
		V.bv = function(a, b) {
			for (var c = a.hc.fk, d = 0, e; e = c[d]; ++d)
				if (0 != e.tb[I]) {
					var f = new Et;
					f.Dk(e.tb, e.mm);
					e[P] && f.Dk(e[P], e.Qr);
					var g = this.g.ja();
					this.g.xa(f, e.b, g);
					e = g.q();
					this.yc(this.la.pathinterval.ma, Hu([yl, b, d]), e)
				}
		};
		V.ao = function(a, b, c, d) {
			a[F] == Pg || a[F] == hn ? this.Lo(a, b, c, d) : a[F] == wh ? this.Mo(a, b, c, d) : a[F] == sh ?
				this.Tn(a, b, c, d) : this.No(a, b, c, d)
		};
		V.$u = function(a, b) {
			for (var c = this.la.bubble.ma, d = 0; d < a.c[I]; d++) {
				var e = a.c[d];
				e && (this.Tn(a, b, e, d), this.g.rh(e[x], e.i.x, e.i.y, e.Sq, Eh, Eh, e.t, c))
			}
		};
		V.pp = function(a, b) {
			for (var c = 0; c < a.c[I]; c++) this.Lo(a, b, a.c[c], c)
		};
		V.Lo = function(a, b, c, d) {
			if (c && c.i) {
				var e = pv(c, a),
					f = a[F] == Pg ? Ng : jn,
					g = Hu([f, b, d]),
					i = c.i.Wf || c.i,
					e = this.g.ne(i[C], i.top, i[w], i[Q], e),
					j = l,
					m = c.i.outline,
					o = c.xc,
					q = c.qb;
				if (m || o || q) j = this.g.ja(), this.g[t](j, e);
				if (m) {
					var u = c.Ha || a.Ha;
					this.g.xa(Ft(m, k), u, j)
				}
				if (o)
					for (m = 0; m < o.Ca[I]; m++) u = o.Ca[m][vc], this.g.Wa(u[C], u.top, u[w], u[Q], o.Ca[
						m].b, j);
				q && this.g.Wa(q[vc][C], q[vc].top, q[vc][w], q[vc][Q], q.b, j);
				e = j ? j.q() : e;
				this.yc(this.la[f].ma, g, e);
				c.K && this.wh(c.K, b, d);
				c.i.Wc && this.Lm(a, b, d, c.i.Wc);
				this.Ia.z && a.z && (b = {
					rect: new js(i[C],
						i.top, i[w], i[Q]),
					$: b,
					Sa: d
				}, a[F] == Pg ? this.sj[g] = b : a[F] == hn && (this.tj[g] = b))
			}
		};
		V.Zu = function(a, b, c) {
			if (0 != a.c[I]) {
				var d = k,
					e = l,
					f = new Et;
				f[rb](a.c[0].i.Fj, a.c[0].i.Gj);
				for (var g = 0; g < a.c[I]; g++) {
					var i = a.c[g].i;
					f.G(i.Jh, i.Kh);
					(i.Hh != i.Jh || i.Ih != i.Kh) && f.G(i.Hh, i.Ih);
					W(i.x) && W(i.y) && (d = n, e = g)
				}
				if (!d) {
					if (c)
						for (g = a.c[I] - 1; 0 <= g; g--) i = a.c[g].i, f.G(i.Hj, i.Ij), (i.Fj != i.Hj || i
							.Gj != i.Ij) && f.G(i.Fj, i.Gj);
					else i = a.c[e].i, f.G(i.Hj, i.Ij), f[Ac]();
					g = Hu([Cg, b]);
					f = this.g.oe(f, a.Jq);
					this.yc(this.la.area.ma, g, f);
					if (c) {
						g = wv(a);
						c = Hu([Ak, b]);
						if (f = g.oe(this.g)) {
							d = l;
							e = a.xc;
							i = a.qb;
							if (e || i) d = this.g.ja();
							if (e)
								for (g =
									0; g < e.Ca[I]; g++) this.g.xa(e.Ca[g][Mb], e.Ca[g].b, d);
							i && this.g.xa(i[Mb], i.b, d);
							d && this.g[t](d, f);
							g = d ? d.q() : f;
							this.yc(this.la.line.ma, c, g)
						}
						this.Yj(a, b)
					} else this.Sm(a, b, n)
				}
			}
		};
		V.Sm = function(a, b, c) {
			var d = Hu([Ak, b]);
			if (0 >= a[dd]) this.ak(d), this.Yj(a, b);
			else if (c = vv(a, c), 0 != c.eb[I]) {
				if (c = c.oe(this.g)) {
					var e = l,
						f = a.xc,
						g = a.qb;
					if (f || g) e = this.g.ja();
					if (f)
						for (var i = 0; i < f.Ca[I]; i++) this.g.xa(f.Ca[i][Mb], f.Ca[i].b, e);
					g && this.g.xa(g[Mb], g.b, e);
					e && this.g[t](e, c);
					e = e ? e.q() : c;
					this.yc(this.la.line.ma, d, e)
				}
				this.Yj(a, b);
				this.Ia.z && a.z && this.Ia.ae == Ei && c && this.zc(c, {
					mouseover: wm,
					mousemove: nn,
					mouseout: xm
				}, {
					$: b
				})
			}
		};
		V.Yj = function(a, b) {
			for (var c = 0; c < a.c[I]; c++) this.No(a, b, a.c[c], c)
		};
		V.Kr = function(a, b) {
			var c = this.Ia.a;
			if (a.x - b >= c[R] || a.x + b <= c[C] || a.y - b >= c[P] || a.y + b <= c.top) return n;
			if ((a.x >= c[R] || a.x <= c[C]) && (a.y >= c[P] || a.y <= c.top)) {
				var d = b * b,
					e = a.x - c[R],
					f = a.x - c[C],
					g = a.y - c[P],
					c = a.y - c.top,
					e = e * e,
					f = f * f,
					g = g * g,
					c = c * c;
				if (e + g >= d && e + c >= d && f + c >= d && f + g >= d) return n
			}
			return k
		};
		V.No = function(a, b, c, d) {
			this.Bp(a, b, c, d, this.la.point.ma, this.la.pointsensitivityarea.ma)
		};
		V.Tn = function(a, b, c, d) {
			this.Bp(a, b, c, d, this.la.bubble.ma, l)
		};
		V.Bp = function(a, b, c, d, e) {
			if (c && c.i && !c.ud) {
				var f = rv(c, a),
					g = Hu([a[F] == sh ? oh : Ll, b, d]);
				if (f) {
					if (!this.Kr(c.i, tv(c, a))) {
						this.ak(g);
						return
					}
					var f = this.g.Uh(c.i.x, c.i.y, sv(c, a), pv(c, a)),
						i = l,
						j = c.qb,
						m = c.xc;
					if (j || m) i = this.g.ja();
					j && this.g.Zj(j.x, j.y, j.Xb, j.b, i);
					i && this.g[t](i, f);
					if (m)
						for (j = 0; j < m.Ca[I]; j++) this.g.Zj(m.x, m.y, m.Ca[j].Xb, m.Ca[j].b, i);
					f = i ? i.q() : f;
					this.yc(e, g, f)
				} else if (this.ak(g), 0 == a[dd]) return;
				c.K && this.wh(c.K, b, d);
				c.Ue && this.lm(c.Ue, a, b, d);
				c.i.Wc && this.Lm(a, b, d, c.i.Wc);
				this.Ia.z && a.z && (this.rj[g] = {
					Hb: c.i,
					Xb: c.i && W(c.i.Zh) ? c.i.Zh : W(c.Zh) ? c.Zh : a.Hq,
					$: b,
					Sa: d
				})
			}
		};
		V.av = function(a, b) {
			for (var c = 0; c < a.c[I]; c++) this.Mo(a, b, a.c[c], c)
		};
		V.Mo = function(a, b, c, d) {
			if (c && c.i) {
				var e = this.g.ne(c.i.tb[C], c.i.tb.top, c.i.tb[w], c.i.tb[Q], c.Ha),
					f = this.g.ne(c.i[vc][C], c.i[vc].top, c.i[vc][w], c.i[vc][Q], c.dm),
					g = this.g.ja();
				this.g[t](g, e);
				this.g[t](g, f);
				if (e = c.xc)
					for (f = 0; f < e.Ca[I]; f++) {
						var i = e.Ca[f][vc];
						this.g.Wa(i[C], i.top, i[w], i[Q], e.Ca[f].b, g)
					}(e = c.qb) && this.g.Wa(e[vc][C], e[vc].top, e[vc][w], e[vc][Q], e.b, g);
				e = Hu([vh, b, d]);
				this.yc(this.la.candlestick.ma, e, g.q());
				c.K && this.wh(c.K, b, d);
				this.Ia.z && a.z && (this.vj[e] = {
					rect: c.i[vc],
					tb: c.i.tb,
					$: b,
					Sa: d
				})
			}
		};
		V.lm = function(a, b, c, d) {
			if (a) {
				var e = a.Ym,
					f = this.Ia.a;
				if (!(e.x < f[C] || e.x > f[R]))
					if (e = this.Ms(e[Qb], e.x, e.y, e[I], this.Ia.Iq), a = this.Sn(a.label, k)) f = [rg],
						W(c) && f[v](c), f[v](d), this.yc(this.la.annotation.ma, Hu(f), e), f[0] = Ag, this
						.yc(this.la.annotationtext.ma, Hu(f), a), this.Ia.z && (!b || b.z) && this.Ia.jc !=
						xh && this.zc(a, {
							click: tg,
							mouseover: ug,
							mouseout: vg,
							mousemove: nn
						}, {
							$: c,
							Sa: d
						})
			}
		};
		V.Ms = function(a, b, c, d, e) {
			a = a == Gj ? [d, 1] : [1, d];
			return this.g.ne(s.min(b, b + a[0]), s.min(c, c + a[1]), s.abs(a[0]), s.abs(a[1]), new wt({
				fill: e
			}))
		};
		V.Lm = function(a, b, c, d) {
			if (!W(a.hc)) return l;
			for (var e = this.g.ja(), a = a.hc.jg, f = 0; f < d[I]; f++) {
				var g = d[f][vc],
					i = a[d[f].ig];
				if (!(i[zc] == Cg || i[zc] == Ak)) {
					var j = i.b;
					if (0 == g[w] && 0 == g[Q]) i = i.Qq / 2, 0 < i && (g = this.g.Uh(g[C], g.top, i, j),
						this.g[t](e, g));
					else if (0 == g[w] || 0 == g[Q]) i = new Et, i[rb](g[C], g.top), i.G(g[C] + g[w], g
						.top + g[Q]), this.g.xa(i, j, e);
					else this.g[t](e, this.g.ne(g[C], g.top, g[w], g[Q], j))
				}
			}
			if (!e.Mg()) return l;
			b = Hu([Xj, b, c]);
			e = e.q();
			this.yc(this.la.interval.ma, b, e);
			return e
		};
		V.Hr = function(a, b) {
			var c = this.g,
				d = a.a.top,
				e = a.a[Q];
			b.kb && !b.We.xg() && Mp(b.kb, function(a, f) {
				if (a.B) {
					var j = c.Wa(s[B](a.u), d, 1, e, b.We, this.la.gridline.ma);
					c.ib(j, b[Sb] + Vd + f)
				}
			}, this);
			if (b.V && b.V.B && !b.Ve.xg()) {
				var f = c.Wa(s[B](b.V.u), d, 1, e, b.Ve, this.la.baseline.ma);
				c.ib(f, b[Sb])
			}
		};
		V.Ir = function(a, b) {
			var c = this.g,
				d = a.a[C],
				e = a.a[w];
			b.kb && !b.We.xg() && Mp(b.kb, function(a, f) {
				if (a.B) {
					var j = c.Wa(d, s[B](a.u), e, 1, b.We, this.la.gridline.ma);
					c.ib(j, b[Sb] + Vd + f)
				}
			}, this);
			if (b.V && b.V.B && !b.Ve.xg()) {
				var f = c.Wa(d, s[B](b.V.u), e, 1, b.Ve, this.la.baseline.ma);
				c.ib(f, b[Sb])
			}
		};
		V.gn = function(a, b) {
			var c = this.la;
			this.g.ib(this.yd(b[J], c.axistitle.ma), b[Sb] + Xd);
			if (b[x]) {
				var d = c.axistick.ma;
				Mp(b[x], function(a, c) {
					a.B && this.g.ib(this.yd(a.o, d), b[Sb] + Wd + c)
				}, this)
			}
		};
		V.Xn = function(a, b) {
			this.il(a, this.se);
			this.hl(a, b)
		};
		V.il = function(a, b) {
			for (var c in b.e) {
				var d = a.e[c];
				if (fv(b.e[c], qq({
						c: l
					})))
					for (var e in b.e[c].c) b.e[c].c[e].K && this.Mk(ea(c), ea(e)), this.ao(d, ea(c), d.c[
						e], ea(e));
				else {
					for (e in b.e[c].c) b.e[c].c[e].K && this.Mk(ea(c), ea(e));
					this.Xj(d, ea(c))
				}
			}
			for (var f in b.v) b.v[f].kg && this.Us(ea(f))
		};
		V.hl = function(a, b) {
			for (var c in b.e) {
				var d = a.e[c];
				if (fv(b.e[c], qq({
						c: l
					})))
					for (var e in b.e[c].c) {
						var f = new ju(2);
						f.Lb(0, d.c[e]);
						f.Lb(1, b.e[c].c[e]);
						f = f[ad]();
						this.ao(d, ea(c), f, ea(e))
					} else f = new ju(2), f.Lb(0, d), f.Lb(1, b.e[c]), this.Xj(f[ad](), ea(c))
			}
			for (var g in b.v) b.v[g].kg && this.Pm(b.v[g].kg, ea(g))
		};

		function zv(a, b) {
			a ? b[I] != a[I] && h(r("colorsScale and valuesScale must be of the same length")) : 1 != b[I] && h(
				r("colorsScale must contain exactly one element when no valueScale is provided"));
			this.Zd = a;
			this.Ne = Op(b, function(a) {
				return ct(a).Wi
			})
		}
		var Av = ["#EFE6DC", "#109618"],
			Bv = ["#DC3912", "#EFE6DC", "#109618"];
		zv[K].lt = function(a) {
			if (!this.Zd) return this.Ne[0];
			if (a >= this.Zd[this.Zd[I] - 1]) return this.Ne[this.Ne[I] - 1];
			if (a <= this.Zd[0]) return this.Ne[0];
			var b, c = this.Zd;
			b = cq;
			for (var d = 0, e = c[I], f; d < e;) {
				var g = d + e >> 1,
					i;
				i = b(a, c[g]);
				0 < i ? d = g + 1 : (e = g, f = !i)
			}
			b = f ? d : ~d;
			if (0 <= b) return this.Ne[b];
			c = -b - 2;
			b = -b - 1;
			return st(this.Ne[b], this.Ne[c], (a - this.Zd[c]) / (this.Zd[b] - this.Zd[c]))
		};

		function Cv(a, b) {
			!b || 0 == b[I] ? b = a && 3 == a[I] ? Bv : Av : 1 == b[I] && (b = [Av[0], b[0]]);
			if (!a || 2 > a[I]) return {
				hk: l,
				gk: [Jp(b)]
			};
			var c = a[0],
				d = a[a[I] - 1],
				e = d - c;
			if (0 == e) return {
				hk: [d],
				gk: [Jp(b)]
			};
			if (2 == a[I]) {
				a = [];
				d = e / (b[I] - 1);
				for (e = 0; e < b[I]; e++) a[v](c + d * e)
			}
			return {
				hk: a,
				gk: b
			}
		};

		function Dv() {
			return {
				transform: function(a) {
					return a
				},
				inverse: function(a) {
					return a
				}
			}
		}

		function Ev() {
			return {
				transform: function(a) {
					return s.log(a) / s.LN10
				},
				inverse: function(a) {
					return s.pow(10, a)
				}
			}
		}

		function Fv(a) {
			return {
				transform: function(b) {
					return b > a ? s.log(b / a) / s.LN10 : b < -a ? -s.log(-b / a) / s.LN10 : 0
				},
				inverse: function(b) {
					return 0 < b ? s.pow(10, b) * a : 0 > b ? -s.pow(10, -b) * a : 0
				}
			}
		}
		var Gv = {
			LINEAR: Dk,
			py: Fk,
			uy: Tk
		};

		function Hv(a, b, c) {
			return (c = a.Wh(c, Gv)) ? c : a.za(b) ? Fk : Dk
		}

		function Iv(a, b) {
			switch (a) {
				case Dk:
					return Dv();
				case Fk:
					return Ev();
				case Tk:
					return Fv(b / 2)
			}
		};

		function Jv(a, b, c, d) {
			this.dq = s.pow(a, 2);
			this.pw = s.pow(b, 2);
			this.mw = b;
			this.eq = (this.Uf = c ? new pt(d[ed](c[O]), d[ed](c.end)) : l) ? this.Uf.end - this.Uf[O] : l;
			this.qw = d
		}
		Jv[K].mt = function(a) {
			if (!this.eq || !W(a)) return this.mw;
			a = this.qw[ed](a);
			a = pr(a, this.Uf[O], this.Uf.end);
			return s[z](s[Ib](this.dq + (a - this.Uf[O]) / this.eq * (this.pw - this.dq)))
		};
		var Kv = {
			sy: Jf,
			Iy: Sf,
			ty: Kf,
			hy: Cf,
			$x: wf,
			Qy: Yf,
			vy: Mf,
			Fy: Rf,
			Ry: ag
		};

		function Lv(a) {
			switch (a) {
				case Jf:
					return 1;
				case Sf:
					return 1E3;
				case Kf:
					return 6E4;
				case Cf:
					return 36E5;
				case wf:
					return 864E5;
				case Yf:
					return 6048E5;
				case Mf:
					return 2629746E3;
				case Rf:
					return 7889238E3;
				case ag:
					return 31556952E3;
				default:
					h(r("Unknown time duration: " + a))
			}
		};
		var Mv = {
				Nw: "yyyy",
				Ow: "MMM y",
				Sy: "MMMM yyyy",
				wy: "MMM d",
				xy: "MMMM dd",
				zy: "M/d",
				yy: "MMMM d",
				ay: ni
			},
			Nv = Mv,
			Nv = Mv;

		function Ov(a, b, c, d) {
			return new Pv(b, a + (id + c), a + (id + d))
		}

		function Pv(a, b, c) {
			this.Ti = a;
			this.lq = new google[wc][Tb]({
				pattern: b
			});
			this.Rw = c ? new google[wc][Tb]({
				pattern: c
			}) : this.lq
		}
		ya(Pv[K], function(a) {
			a /= this.Ti;
			return (1 == s.abs(s[z](a)) ? this.Rw : this.lq)[rc](a)
		});

		function Qv() {
			this.kq = new Date;
			this.Dg(Jf)
		}
		Qv[K].Dg = function(a) {
			switch (a) {
				case ag:
					a = Nv.Nw;
					break;
				case Rf:
					a = Qf;
					break;
				case Mf:
					a = Nv.Ow;
					break;
				case wf:
					a = 3;
					break;
				default:
					a = 11
			}
			this.Qd = new google[wc].DateFormat({
				pattern: a,
				timeZone: 0
			})
		};
		ya(Qv[K], function(a) {
			this.kq[Qc](a);
			return this.Qd[rc](this.kq)
		});

		function Rv() {
			this.Ql = l;
			this.Rf = [];
			this.Pl = this.Ke = this.ph = l
		}
		V = Rv[K];
		V.lu = function(a) {
			this.Pl = a;
			return this
		};
		V.iu = function(a) {
			this.Ql = a;
			return this
		};
		V.ju = function(a) {
			this.ph = a;
			return this
		};
		V.ku = function(a) {
			this.Ke = a;
			return this
		};
		V.mu = function(a) {
			a = av(op(a) ? a : 3);
			this.Rf = [Ov(a, s.pow(10, 15), Pf, Pf), Ov(a, s.pow(10, 12), Vf, Vf), Ov(a, s.pow(10, 9), rf,
				rf), Ov(a, s.pow(10, 6), If, If)];
			return this
		};
		V.gu = function() {
			var a;
			a = this.Pl ? new google[wc][Tb]({
				pattern: this.Pl
			}) : new google[wc][Tb]({
				pattern: av(op(this.Ql) ? this.Ql : 16)
			});
			return new Sv(a, this.Rf, this.ph, this.Ke)
		};

		function Sv(a, b, c, d) {
			this.bw = a;
			this.Rf = b || [];
			this.ph = c || l;
			this.Ke = d || l;
			a: {
				a = this.Rf;b = p;
				for (c = 0; c < a[I]; c++) {
					d = a[c];
					if (b < d.Ti) break a;
					b = d.Ti
				}
			}
		}
		ya(Sv[K], function(a) {
			var b = 0 > a,
				a = s.abs(a);
			if (this.ph) {
				var c = this.ph;
				if (0 != a) {
					var d = s[B](s.log(s.abs(a)) / Lu) + 1;
					d > c ? (c = s.pow(10, d - c), a = s[z](a / c) * c) : (c = s.pow(10, c - d), a = s[
						z](a * c) / c)
				}
			}
			c = l;
			for (d = 0; d < this.Rf[I]; d++) {
				var e = this.Rf[d];
				if (a >= e.Ti) {
					c = e[zb](a);
					break
				}
			}
			c == l && (c = this.bw[rc](a));
			c = this.tw(c);
			return b ? ke + c : c
		});
		Sv[K].tw = function(a) {
			if (!this.Ke) return a;
			var b = this.Ke.symbol,
				c = this.Ke.usePadding ? id : S;
			return this.Ke[fc] == hm ? a + c + b : b + c + a
		};

		function Tv(a, b, c, d, e) {
			this.Ri = a;
			this.Hl = b;
			this.Kx = c;
			this.Jx = d;
			this.Tf = e;
			a = this.Ml(a);
			b = this.Ml(b) - a;
			this.Ie = (d - c) / b;
			this.nh = this.Ie * a - c
		}
		Tv[K].pa = function(a) {
			return this.Ml(a) * this.Ie - this.nh
		};
		Tv[K].Mb = function(a) {
			return this.Kw((a + this.nh) / this.Ie)
		};
		Tv[K].Ml = function(a) {
			switch (this.Tf) {
				case 0:
					return s.log(a);
				case 1:
					return a;
				default:
					return (s.pow(a, this.Tf) - 1) / this.Tf
			}
		};
		Tv[K].Kw = function(a) {
			switch (this.Tf) {
				case 0:
					return s.pow(s.E, a);
				case 1:
					return a;
				default:
					return s.pow(a * this.Tf + 1, 1 / this.Tf)
			}
		};

		function Uv(a, b) {
			return 0 > b ? a / s.pow(10, -b) : a * s.pow(10, b)
		}

		function Vv(a) {
			return 0.4342944819032518 * s.log(a)
		}

		function Wv(a) {
			return s[B](Vv(a))
		}

		function Xv(a) {
			return s[db](Vv(a))
		};

		function Yv(a, b, c, d, e, f) {
			this.De = a;
			this.Ug = b;
			this.tf = c;
			this.sf = d;
			this.au = e;
			this.Eo = f;
			this.dc = this.bu();
			a >= this.dc ? (this.Fa = this.Xd(a, b, c, d), this.mb = s[z](this.Fa.pa(this.dc))) : b <= -this
				.dc ? (this.Fa = this.Xd(-b, -a, d, c), this.mb = s[z](this.Fa.pa(this.dc)), f = 2 * this.mb -
					d, e = 2 * this.mb - c, this.Fa = this.Xd(-b, -a, f, e)) : a >= -this.dc ? (this.mb = s[z](
					c), this.Fa = this.Xd(this.dc, b, this.mb, d)) : b <= this.dc ? (this.mb = s[z](d), e = 2 *
					this.mb - c, this.Fa = this.Xd(this.dc, -a, this.mb, e)) : (this.Fa = this.Xd(this.dc, b, 0,
						1), e = this.Fa.pa(-a),
					this.mb = s[z](c + (d - c) * (e / (e + 1))), b >= -a ? this.Fa = this.Xd(this.dc, b, this
						.mb, d) : (e = 2 * this.mb - c, this.Fa = this.Xd(this.dc, -a, this.mb, e)));
			this.vg = d < c
		}
		V = Yv[K];
		V.me = function() {
			return this.De
		};
		V.le = function() {
			return this.Ug
		};
		V.pe = function() {
			return this.tf
		};
		V.Hd = function() {
			return this.sf
		};
		V.bu = function() {
			return this.De == this.Ug ? this.De / 2 : ka(this.Eo) ? Uv(1, Wv(this.Ug - this.De)) / 1E3 :
				this.Eo / 2
		};
		V.Xd = function(a, b, c, d) {
			return new Tv(a, b, c, d, this.au)
		};
		V.Mb = function(a) {
			if (this.De == this.Ug) return this.De;
			var b = this.vg ? -1 : 1;
			return a * b > this.mb * b ? this.Fa.Mb(a) : a * b < this.mb * b ? -this.Fa.Mb(2 * this.mb -
				a) : 0
		};
		V.pa = function(a) {
			return this.De == this.Ug ? s.abs(this.tf - this.sf) / 2 : a > this.dc ? this.Fa.pa(a) : a < -
				this.dc ? 2 * this.mb - this.Fa.pa(-a) : this.mb
		};

		function Zv(a, b, c, d, e, f, g) {
			hp(g) || (g = 2);
			this.Pu = a;
			this.m = b;
			this.Mu = c;
			this.Nu = d;
			this.Fx = e;
			this.Id = f;
			this.Gx = this.Ou(g)
		}
		Zv[K].Ou = function(a) {
			switch (a) {
				case 1:
				case 2:
				case 3:
					break;
				default:
					h(r("Invalid label alignment value: " + a))
			}
			return a
		};

		function $v(a, b, c) {
			return new Zv(a, b, k, k, k, c)
		}

		function aw(a, b, c) {
			return new Zv(a, b, n, n, n, c)
		}
		Zv[K].re = function() {
			return s[z](this.m)
		};
		Ea(Zv[K], function() {
			return this.Pu
		});
		Zv[K].Jv = function(a) {
			this.Id = a
		};

		function bw(a, b) {
			this.gh = a;
			this.fh = b || 0;
			this.kp = this.Yu(this.gh + this.fh);
			this.m = 0
		}
		V = bw[K];
		Ma(V, function() {
			this.m++;
			return this[H]()
		});
		V.Ya = function() {
			this.m--;
			return this[H]()
		};
		Ea(V, function() {
			return s[z]((this.m * this.gh + this.fh) * this.kp) / this.kp
		});
		ta(V, function(a) {
			this.m = s[B]((a - this.fh) / this.gh);
			return this[H]()
		});
		sa(V, function(a) {
			this.m = s[db]((a - this.fh) / this.gh);
			return this[H]()
		});
		qa(V, function(a) {
			this.m = s[z]((a - this.fh) / this.gh);
			return this[H]()
		});
		V.Yu = function(a) {
			if (1 <= a) return 1;
			var b = a[ac](),
				a = 0,
				c = b[sb](Ii); - 1 != c ? a = ga(b[Zb](c + 1), 10) : c = b[I];
			b = b[sb](me); - 1 != b && (a -= c - 1 - b);
			return s.pow(10, -a)
		};

		function cw(a, b, c, d) {
			this.I = a;
			this.qc = b;
			this.ub = c;
			this.Qd = d
		}
		V = cw[K];
		V.Bo = function(a) {
			var b = a[I];
			if (0 < b)
				for (; --b;)
					if (this.yq(a[b - 1], a[b])) return n;
			return k
		};
		V.yq = function(a, b) {
			var c = this.zp(a),
				d = this.zp(b);
			return s.abs(this.I.pa(a) - this.I.pa(b)) < (c + d) / 2
		};
		V.nu = function(a) {
			var b = [];
			if (1 >= a[I] || 0 != a[0]) return a;
			b[v](a[0]);
			for (var c = 1, d = a[I]; c < d; c++) this.yq(a[0], a[c]) || b[v](a[c]);
			return b
		};
		V.zp = function(a) {
			return this.qc.Hf(this.Qd[zb](a), this.ub)
		};
		V.Oo = function(a, b) {
			return s.abs(this.I.Mb(b) - this.I.Mb(a))
		};
		V.Bi = function(a) {
			for (var b = [], c = 0; c < a[I]; c++) {
				var d = a[c];
				b[v]($v(d, this.I.pa(d), this.Qd[zb](d)))
			}
			return b
		};
		V.fl = function(a, b, c, d) {
			if (b == c) return [b];
			for (var e = [], b = a[db](b); b <= c;) e[v](b), b = a[oc]();
			1 == e[I] && (b = (new bw(d / 10))[B](c), b != e[0] && e[v](b));
			return e
		};

		function dw(a) {
			this.zv(a);
			this.dv = a[hb]();
			this.ah = a[I];
			this.m = 0
		}
		V = dw[K];
		Ma(V, function() {
			this.m++;
			return this[H]()
		});
		V.Ya = function() {
			this.m--;
			return this[H]()
		};
		V.zv = function(a) {
			var b = a[I];
			0 == b && h(r("Multiplier is empty."));
			1 > a[0] && h(r("Multipliers first value is too low."));
			10 <= a[b - 1] && h(r("Multipliers last value is too high."));
			for (var c = 0, d, e = 0; e < b; e++) d = a[e], op(a[e]) || h(r(
				"MultiplierList contains non-numerical value.")), d <= c && h(r(
				"MultiplierList is not sorted.")), c = d
		};
		Ea(V, function() {
			var a = s[B](this.m / this.ah);
			return Uv(this.dv[this.m - a * this.ah], a)
		});
		ta(V, function(a) {
			this.yl(Wi, a);
			this.m = this.ah * Xv(a);
			if (this[H]() != a)
				for (; this.Ya() > a;);
			return this[H]()
		});
		sa(V, function(a) {
			this.yl(Ch, a);
			this.m = this.ah * Wv(a);
			if (this[H]() != a)
				for (; this[oc]() < a;);
			return this[H]()
		});
		qa(V, function(a) {
			this.yl(lm, a);
			this.m = this.ah * Xv(a);
			if (this[H]() != a) {
				for (; this.Ya() > a;);
				if (a - this[H]() < this[oc]() - a) return this.Ya()
			}
			return this[H]()
		});
		V.yl = function(a, b) {
			0 >= b && h(r(this + me + a + de + b + ") - Received " + b +
				" but may only take positive numbers as argument."))
		};

		function ew(a, b, c, d, e) {
			this.Fa = a;
			this.sl = e;
			this.bc = new cw(a, c, d, b);
			this.sd = new dw([1, 2, 5])
		}
		ew[K].ai = function() {
			var a = this.gl(),
				b;
			this.sd[B](a);
			do b = this.bc.fl(new bw(a), this.Fa.me(), this.Fa.le(), a), a = this.sd[oc](); while (!this.bc
				.Bo(b));
			return this.bc.Bi(b)
		};
		ew[K].gl = function() {
			var a = this.Fa.pe(),
				b = this.Fa.Hd(),
				c = s.max(this.bc.Oo(a, a + this.sl), this.bc.Oo(b - this.sl, b)),
				d = this.Fa.pa(0);
			d >= a && d <= b && (a = this.Fa.Mb(this.Fa.pa(0) + this.sl), c = s.max(c, a));
			return this.sd[db](c)
		};

		function fw(a, b, c, d) {
			this.Ri = a;
			this.Hl = b;
			this.Rl = c;
			this.Vp = d;
			this.Ie = (this.Vp - this.Rl) / (this.Hl - this.Ri);
			this.nh = this.Ie * this.Ri - this.Rl
		}
		V = fw[K];
		V.Mb = function(a) {
			return (a + this.nh) / this.Ie
		};
		V.pa = function(a) {
			return a * this.Ie - this.nh
		};
		V.pe = function() {
			return this.Rl
		};
		V.Hd = function() {
			return this.Vp
		};
		V.me = function() {
			return this.Ri
		};
		V.le = function() {
			return this.Hl
		};

		function gw(a, b) {
			this.Ci = a;
			this.Vg = s[B](a / 10);
			this.td = a - this.Vg;
			this.Va = 0;
			this.Di = Wv(s.abs(b));
			this.Ee = this.td * this.Di;
			this.m = 0
		}
		V = gw[K];
		V.fp = function() {
			var a = s[B](this.m / this.td),
				b;
			b = 10 * (this.m + this.Vg - a * this.td) / this.Ci;
			0 == b && (b = 1);
			return Uv(b, a)
		};
		Ea(V, function() {
			this.m = s.abs(this.Va) + this.Ee;
			return 0 < this.Va ? this.fp() : 0 > this.Va ? -this.fp() : 0
		});
		Ma(V, function() {
			this.Va++;
			return this[H]()
		});
		V.Ya = function() {
			this.Va--;
			return this[H]()
		};
		ta(V, function(a) {
			var b = this.Vg,
				c = Wv(s.abs(a));
			if (s.abs(a) <= s.pow(10, this.Di)) return this.Va = 0 > a ? -1 : 0, this[H]();
			if (0 < a) this.Va = this.td * c - this.Ee;
			else if (0 > a) this.Va = this.Ee - this.td * c, b = -b;
			this[H]() != a && (c = this.Ci * a / Uv(1, Xv(s.abs(a))), this.Va += s[B](c) - b);
			return this[H]()
		});
		sa(V, function(a) {
			var b = this.Vg,
				c = Wv(s.abs(a));
			if (s.abs(a) <= s.pow(10, this.Di)) return this.Va = 0 < a ? 1 : 0, this[H]();
			if (0 < a) this.Va = this.td * c - this.Ee;
			else if (0 > a) this.Va = this.Ee - this.td * c, b = -b;
			this[H]() != a && (c = this.Ci * a / Uv(1, Xv(s.abs(a))), this.Va += s[db](c) - b);
			return this[H]()
		});
		qa(V, function(a) {
			var b = Wv(s.abs(a));
			if (s.abs(a) <= s.pow(10, this.Di)) return this.Va = 0;
			if (0 < a) {
				this.Va = this.td * b - this.Ee;
				if (this[oc]() > a) return a - this[H]() >= this.Ya() - a ? this[oc]() : this[H]();
				this.Ya()
			} else if (0 > a) {
				this.Va = this.Ee - this.td * b;
				if (this.Ya() < a) return a - this[H]() < this[oc]() - a ? this.Ya() : this[H]();
				this[oc]()
			}
			this[H]() != a && (b = this.Ci * a / Uv(1, Xv(s.abs(a))), this.Va += s[z](b) - this.Vg);
			return this[H]()
		});

		function hw(a, b, c, d, e, f) {
			this.I = a;
			this.Qd = b;
			this.qc = c;
			this.ub = d;
			this.xi = f;
			this.Vt = e;
			this.bc = new cw(a, c, d, b);
			this.sd = new dw([1, 2, 5])
		}
		hw[K].ai = function() {
			var a = this.gl(),
				b = this.bc.fl(new gw(a, this.xi), this.I.me(), this.I.le(), a);
			if (2 > b[I]) return this.bc.Bi(b);
			var a = b[0],
				c = b[1];
			if (0 == a) {
				if (3 > b[I]) return this.bc.Bi(b);
				a = c;
				c = b[2]
			}
			b = Uv(1, Xv(s.abs(a)));
			b == a && (b *= 10);
			this.sd[db](b / s.abs(c - a));
			do a = this.sd.Ya(), b = this.bc.fl(new gw(a, this.xi), this.I.me(), this.I.le(), a), b = this
				.bc.nu(b); while (!this.bc.Bo(b));
			return this.bc.Bi(b)
		};
		hw[K].gl = function() {
			var a = this.I.pa(10 * this.xi),
				b;
			this.sd[B](1);
			do b = this.sd[oc](), b = this.I.pa(10 * this.xi * (b - 1) / b); while (s.abs(a - b) >= this
				.Vt);
			return this.sd.Ya()
		};

		function iw(a, b) {
			this.Wp = a;
			this.W = b
		}
		iw[K].op = function(a) {
			return this.Wp(a, this.W)[w]
		};
		iw[K].Sf = function(a) {
			return this.Wp(a, this.W)[Q]
		};
		iw[K].Hf = function(a, b) {
			return b == Gj ? this.op(a) : this.Sf(a)
		};

		function jw(a, b) {
			W(a) ? (s[z](a), this.Yd = a) : this.Yd = 1;
			if (12 < this.Yd) this.gw = new bw(s[B](this.Yd / 12));
			var c = b || 0;
			s[z](c);
			this.fw = c;
			this.fc = new Date;
			this[B](0)
		}
		V = jw[K];
		Ea(V, function() {
			return this.fc[Vb]()
		});
		Ma(V, function() {
			var a = this.fc[Gc](),
				a = a + this.Yd;
			this.fc.setUTCMonth(a);
			return this[H]()
		});
		V.Ya = function() {
			this.fc.setUTCMonth(this.fc[Gc]() - this.Yd);
			return this[H]()
		};
		ta(V, function(a) {
			this.fc[Qc](a);
			1 < this.Yd && (this.fc.setUTCMonth(this.fc[Gc]() - (this.fc[Gc]() + 12 - this.fw) % this
				.Yd % 12), 12 < this.Yd && this.fc.setUTCFullYear(this.gw[B](this.fc
				.getUTCFullYear())));
			this.fc.setUTCDate(1);
			this.fc.setUTCHours(0, 0, 0, 0);
			return this[H]()
		});
		sa(V, function(a) {
			return this[B](a) < a ? this[oc]() : this[H]()
		});
		qa(V, function(a) {
			return this[B](a) != a && a - this[H]() < this[oc]() - a ? this.Ya() : this[H]()
		});

		function kw() {
			this.m = 0
		}
		V = kw[K];
		Ma(V, function() {
			this.m++;
			return this[H]()
		});
		V.Ya = function() {
			this.m--;
			return this[H]()
		};
		Ea(V, function() {
			return Uv(1, this.m)
		});
		ta(V, function(a) {
			this.m = Wv(a);
			return this[H]()
		});
		sa(V, function(a) {
			this.m = Xv(a);
			return this[H]()
		});
		qa(V, function(a) {
			var b = Uv(1, Xv(a)),
				c = b / 10;
			this.m = s[z](Vv(a - c < b - a ? c : b));
			return this[H]()
		});

		function lw(a) {
			a ? (this.Fb = [1E3, 5E3, 1E4, 15E3, 3E4, 6E4, 3E5, 6E5, 9E5, 18E5, 36E5, 108E5, 216E5, 432E5,
				864E5, 6048E5, 2629746E3, 7889238E3, 31556952E3
			], this.Ta = new dw([1, 2, 5])) : (this.Fb = [1E3, 6E4, 36E5, 864E5, 6048E5, 2629746E3,
				7889238E3, 31556952E3
			], this.Ta = new kw);
			this.zi = this.Ta[z](this.Fb[0]);
			this.cl = this.Ta.Ya();
			this.Ft = this.cl + (this.zi - this.cl) / 2;
			this.Gf = this.Fb[this.Fb[I] - 1];
			this.Ta[z](1);
			this.zo = this.Gf * this.Ta[oc]();
			this.Gt = this.Gf + (this.zo - this.Gf) / 2;
			this.Sb(2)
		}
		V = lw[K];
		V.Sb = function(a) {
			this.dl = 1 == a || 4 == a;
			if (2 == a) this.m = 0;
			else if (3 == a) this.m = this.Fb[I] - 1;
			else if (1 == a) this.Rc = 1;
			else if (4 == a) this.Rc = this.Gf
		};
		Ea(V, function() {
			return this.dl ? this.Rc * this.Ta[H]() : this.Fb[this.m]
		});
		ta(V, function(a) {
			if (a < this.zi) return this.Sb(1), this.Ta[B](a);
			if (a >= this.zo) return this.Sb(4), this.Rc * this.Ta[B](a / this.Rc);
			for (this.Sb(2); a >= this.Fb[this.m];) this.m++;
			return this.Fb[--this.m]
		});
		sa(V, function(a) {
			if (a <= this.cl) return this.Sb(1), this.Ta[db](a);
			if (a > this.Gf) return this.Sb(4), this.Rc * this.Ta[db](a / this.Rc);
			for (this.Sb(3); a <= this.Fb[this.m];) this.m--;
			return this.Fb[++this.m]
		});
		qa(V, function(a) {
			if (a < this.Ft) return this.Sb(1), this.Ta[z](a);
			if (a >= this.Gt) return this.Sb(4), this.Rc * this.Ta[z](a / this.Rc);
			for (this.Sb(3); 0 < this.m && a < this.Fb[this.m];) this.m--;
			this.Fb[this.m + 1] - a <= a - this.Fb[this.m] && this.m++;
			return this.Fb[this.m]
		});
		Ma(V, function() {
			this.dl ? (this.Ta[oc](), 1 == this.Rc && this.Ta[H]() == this.zi && this.Sb(2)) : (this
				.m++, this.m == this.Fb[I] && (this.Sb(4), this.Ta[z](1), this.Ta[oc]()));
			return this[H]()
		});
		V.Ya = function() {
			this.dl ? (this.Ta.Ya(), this.Rc == this.Gf && 1 == this.Ta[H]() && this.Sb(3)) : (this.m--, -
				1 == this.m && (this.Sb(1), this.Ta[z](this.zi), this.Ta.Ya()));
			return this[H]()
		};

		function mw(a, b) {
			var c = W(b) ? b : 1,
				a = (new lw)[z](a);
			return 2629746E3 > a ? 6048E5 == a ? new bw(a, 864E5 * (3 + c)) : new bw(a) : new jw(s[z](a /
				2629746E3))
		}

		function nw(a, b) {
			if (0 == a) return 0;
			for (var c = a, d = 0, e = NaN;;) {
				var f = Wv(c),
					g = Uv(1, f),
					i = ow(c);
				if (5 < i && (e = 5 * g + d, e = pw(e, f), e <= a && e > a - b)) break;
				e = i * g + d;
				e = pw(e, f);
				if (e <= a && e > a - b) break;
				f = i * g;
				d += f;
				c -= f
			}
			return e
		}

		function qw(a, b) {
			if (0 == a) return 0;
			for (var c = a, d = 0, e = NaN;;) {
				var f = Wv(c),
					g = Uv(1, f),
					i = ow(c);
				if (5 > i && (e = 5 * g + d, e = pw(e, f), e <= a + b && e >= a)) break;
				e = i * g + d;
				e = pw(e, f);
				if (e <= a + b && e >= a) break;
				e = (i + 1) * g + d;
				e = pw(e, f);
				if (e <= a + b && e >= a) break;
				f = i * g;
				d += f;
				c -= f
			}
			return e
		}

		function pw(a, b) {
			var c = Uv(1, s.abs(b));
			return s[z](a * c) / c
		}

		function ow(a) {
			var b = Wv(a),
				a = a / Uv(1, b),
				b = s.abs(s[z](a) - a);
			0 != b && 1.0E-10 > b && (a = s[z](a));
			return s[B](a)
		};

		function rw(a, b, c, d, e, f, g, i, j) {
			this.rt = a;
			this.to = b;
			this.uo = c;
			this.qc = d;
			this.Qb = e;
			this.I = f;
			this.wi = g;
			this.ub = i;
			this.Rk = j;
			this.qt = Lv(a);
			this.ti = Lv(b);
			this.Qb.Dg(this.to)
		}
		V = rw[K];
		V.Mt = function(a) {
			return [aw(a, s.abs(this.I.pe() - this.I.Hd()) / 2, this.Qb[zb](a))]
		};
		V.Iw = function() {
			var a = this.I.me(),
				b = this.I.le();
			this.Qb.Dg(this.rt);
			if (a == b) return this.Mt(a);
			var c;
			c = this.Qb[zb](b);
			c = new Zv(b, this.I.Hd(), k, k, n, c, 1);
			this.Qb.Dg(this.to);
			for (var d = 1 == this.uo && this.ti > this.qt, e = mw(this.ti * this.uo), f = mw(this.ti),
					g = [], i = NaN, j = e[db](a), a = f[db](a); a <= b; a = f[oc]()) {
				var m = this.I.pa(a);
				if (a == j) {
					j = e[oc]();
					if (this.Ot(i, a)) return l;
					d ? (ka(i) || g[v](this.Kt(i, a)), g[v](new Zv(a, m, k, k, k, l))) : (i = $v(a, m, this
						.Qb[zb](a)), g[v](i));
					i = a
				} else g[v](new Zv(a, m, n, k, n, l))
			}
			d && b < a && this.Ht(g,
				f, b);
			this.Rk && (this.Jt(c, g, this.qc), g[v](c));
			return 2 > this.Lt(g) ? this.It() : this.Nt(g) ? this.Pt(g) : g
		};
		V.Ht = function(a, b, c) {
			var d = this.Qb[zb](c),
				e = this.qc.Hf(d, this.ub),
				f = b[H](),
				b = this.I.pa(b.Ya()),
				g = this.I.pa(f),
				f = this.I.pa(c),
				b = (b + g) / 2;
			f - b > e / 2 && a[v](aw(c, b, d))
		};
		V.Jt = function(a, b) {
			var c = this.Iv(b);
			if (c != l) {
				var d = this.qc.Hf(c.Id, this.ub),
					e = this.qc.Hf(a.Id, this.ub);
				s.abs(c.re() - a.re()) - (d + e) / 2 < this.wi && c.Jv(l)
			}
		};
		V.Iv = function(a) {
			for (var b = a[I] - 1; 0 <= b; b--)
				if (a[b].Id != l) return a[b];
			return l
		};
		V.It = function() {
			var a = this.Qb[zb](this.I.me()),
				b = this.Qb[zb](this.I.le()),
				a = a + ke + b,
				b = [];
			this.Ku(a, this.I) || b[v](aw(NaN, this.I.pe() + this.I.Hd() / 2, a));
			return b
		};
		V.Ku = function(a) {
			var b = s.abs(this.I.pe() - this.I.Hd());
			return this.qc.op(a) > b + 40
		};
		V.Lt = function(a) {
			for (var b = 0, c = 0; c < a[I]; c++) a[c].Id != l && b++;
			return b
		};
		V.Pt = function(a) {
			for (var b = [], c = 0; c < a[I]; c++) {
				var d = a[c];
				(!d.Nu || d.Mu) && b[v](d)
			}
			return b
		};
		V.Ot = function(a, b) {
			var c = this.qc.Hf(this.Qb[zb](a), this.ub),
				d = this.qc.Hf(this.Qb[zb](b), this.ub);
			return s.abs(this.I.pa(a) - this.I.pa(b)) - (c + d) / 2 < this.wi
		};
		V.Nt = function(a) {
			if (2 > a[I]) return n;
			for (var b = a[0], c = 1; c < a[I]; c++) {
				var d = a[c];
				if (5 > s.abs(d.re() - b.re()) && b[H]() != d[H]()) return k;
				b = d
			}
			return n
		};
		V.Kt = function(a, b) {
			var c = this.I.pa(a),
				d = this.I.pa(b),
				c = (c + d) / 2;
			return aw(this.I.Mb(c), c, this.Qb[zb](a))
		};

		function sw(a, b, c, d, e, f, g) {
			this.I = a;
			this.dg = b;
			this.qc = c;
			this.Qb = d;
			this.wi = e;
			this.ub = f;
			this.Rk = g;
			this.Po = this.xu()
		}
		sw[K].xu = function() {
			return [this.yb(wf, 1), this.yb(wf, 7), this.yb(Mf, 1), this.yb(Mf, 2), this.yb(Mf, 3), this.yb(
				Mf, 6), this.yb(ag, 1), this.yb(ag, 2), this.yb(ag, 5), this.yb(ag, 10), this.yb(ag,
				20), this.yb(ag, 50), this.yb(ag, 100), this.yb(ag, 1E3), this.yb(ag, 1E4), this.yb(
				ag, 1E7)]
		};
		sw[K].yb = function(a, b) {
			return new rw(this.dg, a, b, this.qc, this.Qb, this.I, this.wi, this.ub, this.Rk)
		};
		sw[K].ai = function() {
			for (var a = Lv(this.dg), b = 0; b < this.Po[I]; b++) {
				var c = this.Po[b];
				if (a <= c.ti && (c = c.Iw(), c != l)) return c
			}
			return []
		};

		function tw() {
			this.Bq = {}
		}
		var uw = l;

		function vw() {
			return uw ? uw : uw = new tw
		}
		tw[K].Vs = function(a) {
			return (a = this.Bq[a]) ? a[Uc](l, []) : l
		};
		tw[K].aj = function(a, b) {
			this.Bq[a] = b
		};

		function ww() {}
		V = ww[K];
		V.oc = function(a, b) {
			this.k = a;
			this.lg = b;
			this.Ax = 0;
			this.cb = this.Ak();
			this.r = [];
			this.M = p;
			this.Q = -p;
			ya(this, a.hi(this.A(fj)));
			this.Ws = a.R(this.A(Io), function(a, b) {
				return b
			});
			this.Ok = l
		};
		V.uf = function(a) {
			var b = Hv(this.k, this.A(Gk), this.A(qm));
			this.Ok = Iv(b, a)
		};
		V.A = function(a) {
			return bv(this.lg, a)
		};
		V.Ak = function() {
			return -1
		};
		V.ss = function(a, b, c) {
			c && (this.Fo(a), this.Fo(b));
			if (this.M == p || this.Q == -p) this.M = 0, this.Q = 1;
			if (this.M == this.Q) 0 == this.M ? (this.M = -1, this.Q = 1) : 0 < this.M ? (this.M /= 2, this
				.Q *= 2) : (this.M *= 2, this.Q /= 2);
			this.kl(this.M, this.Q, c);
			this.cb = s.max(1, this.r[I] - 1)
		};
		V.ts = function(a) {
			var b = this.$i(a);
			return this.Ws(a, b)
		};
		V.U = function(a) {
			a = this.od(a);
			if (typeof a != gl) return l;
			a = this.Tw(a);
			return !ia(a) ? l : a
		};
		V.Y = function(a) {
			if (W(a)) this.M = s.min(this.M, a), this.Q = s.max(this.Q, a)
		};
		V.Fo = function(a) {
			this.Y(this.U(a))
		};
		V.Vh = function(a) {
			return this.am(this.kk(a))
		};
		V.Tw = function(a) {
			return this.Ok[ed](a)
		};
		V.kk = function(a) {
			return this.Ok.inverse(a)
		};
		V.$i = function(a) {
			return a[ac]()
		};

		function xw(a, b, c, d, e, f) {
			this.lg = c;
			this.k = b;
			La(this, d);
			Aa(this, b.ia(this.A(po), ru, e));
			this.dataType = b.Hc(this.A(qi));
			this.xh = this.gj = this.hj = l;
			this.Gq = 0 < a.gb.bars;
			c = b.Hc(this.A(Nn));
			d = {
				zb: a.Tc,
				fontSize: a.uc,
				$a: a.Vf == Pj ? a.Se : U
			};
			d = b.vc(this.A(Rn), d);
			Ha(this, {
				text: c,
				t: d,
				d: [],
				Za: Eh,
				Pa: fn,
				K: S
			});
			this.Re = l;
			this.ic = b.ia(this.A(Gn), vu, ol);
			c = {
				color: this[F] != Ho || a.N == rm ? b.Hc(Jk) : b.Hc(Sk),
				zb: a.Tc,
				fontSize: a.uc,
				$a: this.ic == Pj ? a.Se : U
			};
			this.Ra = b.vc(this.A(Hn), c);
			this.Kq = b.ia(this.A(pl), wu, qo);
			this.gm = b.ia(this.A(Rj),
				xu, Ik);
			c = b.Uc(this.A(Rg), a.Eq);
			this.Ve = new wt({
				fill: c
			});
			a = b.Uc(this.A(wj), a.Fq);
			this.We = new wt({
				fill: a
			});
			this.Jc = 2;
			this.em = s.max(this.Jc, s[z](this[J].t[M] / 3.236));
			this.r = [];
			this.uh = 0;
			this.direction = this.ag = b.be(this.A(Ai), 1);
			this.ob = this.sb = l;
			this.th = this.Yf = 0;
			this.J = {
				min: -p,
				max: p
			};
			this.Ac = l;
			this.Lq = f;
			this[F] == Ho ? (this.V = this.j = l, this.dg = b.ia(this.A(Mn), Kv, Jf), this.yh = p) : (this.$e =
				1, this.fg = this.Xe = 0, this.kj = 1, this.hm = 0, this.Zf(b))
		}
		V = xw[K];
		V.A = function(a) {
			return bv(this.lg, a)
		};
		V.yf = function(a) {
			if (0 != a) this.yh = s.min(s.abs(a), this.yh)
		};
		V.uf = function() {
			this.j.uf(this.yh)
		};
		V.oi = function(a, b) {
			var a = this[Fc] || a || gl,
				c = vw().Vs(a);
			c.oc(b, this.lg);
			this.j = c;
			this.hj = c.R(b, this.A(Rk));
			this.gj = c.R(b, this.A(Mk));
			this.xh = c.R(b, this.A(Qg));
			c = this.j.Ak() + 1;
			this.j.cb = this.k.da(this.A(xj), c) - 1
		};
		V.et = function() {
			if (this.J.min != -p) this.j.M = this.J.min;
			if (this.J.max != p) this.j.Q = this.J.max;
			if (this.j.M > this.j.Q) this.j.M = s.min(this.J.max, this.j.M), this.j.Q = s.max(this.J.min,
				this.j.Q)
		};
		V.Zf = function(a) {
			this.Ac = a.Wh(this.A(Oo), su);
			if (ip(this.Ac) || this.Ac == Pi) {
				if (this[F] == Ho) {
					var b = this.j,
						c = b.U(b.R(a, this.A(No))),
						a = b.U(b.R(a, this.A(Mo)));
					if (W(c)) this.J.min = c;
					if (W(a)) this.J.max = a
				} else this.J.min = a.be(this.A(No), this.J.min), this.J.max = a.be(this.A(Mo), this.J.max);
				this.J.min != -p || this.J.max != p ? (this.Ac = Pi, this.J.min >= this.J.max && h(r(
					"viewWindow.max must be greater than viewWindow.min"))) : (this.Ac == Pi && h(r(
						'Option "viewWindowMode" was set to "explicit" but "viewWindow" was not specified.'
						)),
					this.Ac = this.Lq);
				this[F] == Ho && this.Ac == Pi && this.et()
			}
		};
		V.On = function() {
			return this.Ac == Pi && (this.J.min == -p || this.J.max == p)
		};
		V.ko = function() {
			this[F] == Ho && !this.j && h(r("Axis type/data type mismatch for " + this.lg))
		};
		V.xf = function(a, b, c, d) {
			this.sb = c + (1 == this[Wa] ? 0.5 : -0.5);
			this.uh = b - 1;
			this.ob = c + b * this[Wa];
			if (this[F] == Ho) 0 == this.j.cb ? this.j[sc] == yw ? this.Mr(a) : this.Nr(a) : this.Lr();
			else {
				var e;
				if (this.Ac == Pi) {
					if (this.J.min == -p) this.J.min = s.min(0, this.J.max - 1);
					else if (this.J.max == p) this.J.max = s.max(this.fg, this.J.min + 1);
					c = this.J.min;
					e = this.J.max - this.J.min
				} else c = 0, e = this.fg;
				this[F] == Bh && (e = s.max(1, e - 1));
				this.Gq && (e = s.min(e, s[B]((b + 1) / 2)));
				b = this.uh / 1.618 / e;
				this.$e = s.min(this.kj, s[B]((b + 1) / 2));
				this.Xe = s[B]((b - this.$e +
					1) / this.$e);
				this.hm = ((this.Xe + 1) * this.$e - 1) / 2;
				this.th = c + (this[F] == xh ? -0.5 : 0);
				this.Yf = this.uh / e;
				this.r = Uu(this.fg, function(b) {
					var c = b - this.th;
					return {
						fa: a.v[b][A],
						u: this.Aa(b),
						text: a.v[b].dj[0],
						B: 0 <= c && c <= e
					}
				}, this)
			}
			this.jn(a);
			this.hn(a, d);
			return {
				title: this[J],
				name: this.kn(),
				Ve: this.Ve,
				We: this.We,
				ag: this.ag,
				sb: this.sb,
				ob: this.ob,
				L: this[F] == Ho ? {
					Pq: Z(this.j.Vh, this.j),
					sg: Z(this.j.U, this.j),
					jf: Z(this.Or, this),
					mc: Z(this.Tm, this)
				} : l,
				V: this[F] == Ho && this.V ? {
					fa: this.V.fa,
					u: this.V.u,
					B: k
				} : l,
				kb: this[F] == Ho ? Op(this.r,
					function(a) {
						return {
							fa: a.fa,
							u: a.u,
							B: k
						}
					}) : l,
				text: this.Re
			}
		};
		V.Lr = function() {
			this.Y(this.j.U(this.xh));
			this.j.ss(this.hj, this.gj, this.Ac == Sl || this.On());
			if (this.On()) {
				if (this.J.min != -p) this.j.M = this.J.min;
				else if (this.J.max != p) this.j.Q = this.J.max;
				this.j.r = Np(this.j.r, function(a) {
					return a >= this.j.M && a <= this.j.Q
				}, this)
			}
			this.ck();
			this.r = Op(this.j.r, function(a) {
				var b = this.j.Vh(a),
					c = this.j.ts(b);
				return {
					fa: b,
					u: this.Aa(a),
					text: c,
					B: k
				}
			}, this)
		};
		V.Mr = function(a) {
			this.ck();
			var b = this.jk(a),
				c = new Qv;
			c.Dg(this.dg);
			var d = b.tf,
				e = b.sf,
				a = new iw(a.tc, this.Ra);
			if (b.vg) var f = d,
				d = e,
				e = f;
			b = (new sw(new fw(this.j.M, this.j.Q, d, e), this.dg, a, c, 15, b[Qb], k)).ai();
			this.r = [];
			for (c = 0; c < b[I]; c++) d = b[c], d.Id && this.r[v]({
				fa: d[H](),
				u: d.re(),
				text: d.Id,
				B: k
			})
		};
		V.ck = function() {
			var a = this.j.M,
				b = this.j.Q;
			this.Yf = this.uh / (b - a);
			this.th = a;
			if (W(this.xh)) a = this.j.U(this.xh);
			else var c = this.j.U(this.j.Jk()),
				a = pr(c, a, b);
			this.V = this.wd(a) ? {
				fa: this.j.Vh(a),
				u: this.Aa(a)
			} : l
		};
		V.Nr = function(a) {
			this.Y(this.hj);
			this.Y(this.gj);
			if (this.Ac == Sl) {
				var b;
				b = new pt(this.j.M, this.j.Q);
				if (b[O] != b.end) {
					(!ia(b[O]) || !ia(b.end)) && h(r("Range must be finite."));
					b[O] > b.end && h(r("Range start must be less or equal to end."));
					var c = 0.1 * (b.end - b[O]);
					b = new pt(0 > b[O] ? -qw(-b[O], c) : nw(b[O], c), 0 > b.end ? -nw(-b.end, c) : qw(b
						.end, c))
				}
				this.Y(b[O]);
				this.Y(b.end)
			}
			this.ck();
			var d = this.jk(a),
				e = this.j.kk(this.j.M),
				f = this.j.kk(this.j.Q),
				g = Hv(this.k, this.A(Gk), this.A(qm)) == Dk ? 1 : 0;
			var i = d.tf,
				j = d.sf - 1;
			b = this.yh;
			var c = d[Qb],
				m = new iw(a.tc, this.Ra),
				a = this.Rr(this.k);
			d.vg && (d = i, i = j, j = d);
			if (e == f) b = (j - i) / 2 + i, c = a[zb](e), b = [aw(e, b, c)];
			else {
				e = 1 == g ? new fw(e, f, i, j) : new Yv(e, f, i, j, g, b);
				if (e.me() == e.le()) f = 1;
				else {
					var g = s.min(e.pe(), e.Hd()),
						i = s.max(e.pe(), e.Hd()),
						j = s.abs(e.Mb(g)),
						d = s.abs(e.Mb(i)),
						f = s.max(j, d),
						o = 0,
						q = e.pa(0);
					if (g > q || q > i) o = s.min(j, d);
					g = e.pa(o);
					f = e.pa(f);
					f = s.abs(e.Mb(g + 10) - e.Mb(g)) / s.abs(e.Mb(f + 10) - e.Mb(f))
				}
				b = (0.5 < f ? new ew(e, a, m, c, 40) : new hw(e, a, m, c, 40, b)).ai()
			}
			this.r = [];
			for (c = 0; c < b[I]; c++) a = b[c], this.r[v]({
				fa: a[H](),
				u: a.re(),
				text: a.Id,
				B: k
			})
		};
		V.Rr = function(a) {
			var b = new Rv,
				c = a.hi(this.A(fj));
			c ? b.lu(c) : (c = a.Mc(this.A(ij)), op(c) && b.iu(c), c = a.Mc(this.A(jj)), op(c) && b.ju(c), (
				c = a.R(this.A(kj))) && b.ku({
				symbol: c.symbol,
				position: c[fc],
				usePadding: c.usePadding
			}), a.za(this.A(lj)) && b.mu(5));
			return b.gu()
		};
		V.Y = function(a) {
			this[F] == Ho && W(a) && this.wd(a) && this.j.Y(a)
		};
		V.Wm = function() {
			if (this[F] == Ho) {
				var a = this.j,
					b = 0.01 * (a.Q - a.M);
				if (0 < a.M && this.J.min == -p) a.M = s.max(a.M - b, 0);
				if (0 > a.Q && this.J.max == p) a.Q = s.min(a.Q + b, 0)
			}
		};
		V.ke = function(a, b) {
			this.fg = s.max(this.fg, a);
			this.kj = s.max(this.kj, b)
		};
		V.Aa = function(a) {
			return !W(a) ? l : this.sb + (a - this.th) * this[Wa] * this.Yf
		};
		V.Uu = function(a) {
			return !W(a) ? l : (a - this.sb) * this[Wa] / this.Yf + this.j.M
		};
		V.Or = function(a) {
			a = this.Uu(a);
			return !W(a) ? l : this.j.Vh(a)
		};
		V.Tm = function(a) {
			return this.Aa(this.j.U(a))
		};
		V.wd = function(a) {
			return a >= this.J.min && a <= this.J.max
		};
		V.po = function(a) {
			return a * this[Wa] > this.ob * this[Wa]
		};
		V.kt = function(a) {
			return a * this[Wa] < this.sb * this[Wa]
		};

		function zw(a, b, c, d) {
			this.D = a;
			this.k = b;
			this.h = d;
			this.ra = c;
			this.W = this.k.vc(rh, {
				zb: d.Tc,
				fontSize: d.uc,
				$a: d.Se
			});
			this.Fr = this.k.Uc(qh, Hd);
			this.Er = this.k.da(ph, 0.8);
			this.uj = 0;
			this.gg = 1;
			this.hg = 2;
			this.Cd = 3;
			this.bd = 4;
			this.zd = this.pm = this.om = this.rm = this.qm = S;
			this.bk = this.k.R(ei, Fu);
			this.Dr = Aw(this.bk[0])[tb];
			this.tm = this.sm = this.qj = this.pj = this.cf = this.af = l;
			this.xj()
		}
		V = zw[K];
		V.xj = function() {
			function a(a, b, d) {
				if (c[mb]() <= a) return S;
				var e = c[Fb](a);
				b && !(0 <= Lp(d, e)) && h(r("Column " + a + " must be of type " + d[cd](xe)));
				!b && 0 <= Lp(d, e) && h(r("Column " + a + " cannot be of type " + d[cd](xe)));
				return e
			}
			var b = this.h,
				c = this.D,
				d = c[mb]();
			3 > d && h(r("Data table should have at least 3 columns"));
			a(this.uj, k, [pn]);
			var e = a(this.gg, n, [pn]),
				f = a(this.hg, n, [pn]);
			this.qm = c[Cb](this.gg);
			this.rm = c[Cb](this.hg);
			if (this.Cd < d) {
				this.zd = a(this.Cd, k, [gl, pn]);
				if (this.zd == pn) this.af = {}, this.cf = [];
				this.om = c[Cb](this.Cd)
			} else this.Cd =
				l;
			this.bd < d ? (a(this.bd, k, [gl]), this.pm = c[Cb](this.bd), this.k.za(an, k) && c.setRows(c
				.getSortedRows({
					column: this.bd,
					desc: k
				}))) : this.bd = l;
			b.v = [];
			b.df = {};
			for (d = 0; d < c[dc](); d++) {
				var g = c[Jb](d);
				b.df[g] = d
			}
			b.e = [{
				type: sh,
				vm: k,
				z: k,
				c: [],
				tx: this.af,
				ux: this.cf
			}];
			b.fe = e;
			b.mf = [f];
			b.gb = {};
			b.gb.bubbles = 1;
			b.$c = []
		};
		V.rr = function(a, b) {
			for (var c = this.D, d = 0; d < c[dc](); d++) {
				var e = c[H](d, this.gg),
					f = c[H](d, this.hg),
					e = a.j.od(e),
					f = b.j.od(f);
				W(e) && a.yf(e);
				W(f) && b.yf(f)
			}
		};
		V.jr = function(a, b) {
			for (var c = 0; c < this.D[dc](); c++) this.h.e[0].c[v](this.zr(a, b, c));
			if (this.zd == gl) {
				var c = this.k,
					d = this.pj,
					e = l,
					f = c.R(ci);
				if (f && 0 < f[I]) {
					W(f[0]) || h(r(di));
					for (e = 1; e < f[I]; e++) W(f[e]) || h(r(di)), f[e] <= f[e - 1] && h(r(
						"colorAxis.values must be a monotonically increasing series"));
					e = f
				} else {
					var f = c.Mc(bi),
						g = c.Mc(ai);
					W(f) && W(g) && f > g && h(r("colorAxis.minValue (" + f +
						") must be at most colorAxis.maxValue (" + g + fe));
					(d = ut(d, f, g)) && (e = [d[O], d.end])
				}
				d = c.R(ei);
				d = c.R($h, d);
				c = Cv(e, d);
				this.sm = new zv(c.hk, c.gk)
			} else if (this.zd ==
				pn)
				for (c = 0; c < this.cf[I]; c++) e = this.cf[c], d = this.af[e], d.qh && this.h.$c[v]({
					index: c,
					id: e,
					text: d.fj,
					b: new wt({
						fill: d[tb]
					}),
					z: n
				});
			d = this.k;
			f = this.qj;
			c = d.da(Qm);
			e = d.da(Om);
			c > e && h(r("sizeAxis.minSize (" + c + ") must be at most sizeAxis.maxSize (" + e + fe));
			var g = d.Mc(Rm),
				i = d.Mc(Pm);
			W(g) && W(i) && g > i && h(r("sizeAxis.minValue (" + g +
				") must be at most sizeAxis.maxValue (" + i + fe));
			f = ut(f, g, i);
			d = Hv(d, Nm, Sm);
			d = Iv(d, NaN);
			this.tm = new Jv(c, e, f, d)
		};
		V.zr = function(a, b, c) {
			var d = this.D,
				e = d[H](c, this.uj),
				f = d[Xc](c, this.uj),
				g = d[H](c, this.gg),
				i = d[H](c, this.hg),
				j = l;
			if (W(this.Cd) && (j = d[H](c, this.Cd), !W(j))) return l;
			var m = l;
			if (W(this.bd) && (m = d[H](c, this.bd), !W(m))) return l;
			var o = this.ra(f, this.W)[w];
			if (this.zd == gl) this.pj = tt(this.pj, j);
			else if (this.zd == pn) {
				var q = j,
					u = this.af[q];
				if (!u) {
					var u = Cm + q + me,
						y = this.k.Uc(u + Yh, this.bk[this.cf[I] % this.bk[I]]),
						y = Aw(y),
						D = this.k.za(u + Qo, k),
						u = this.k.Hc(u + fk, q),
						u = {
							color: y[tb],
							qh: D,
							fj: u
						};
					this.af[q] = u;
					this.cf[v](q)
				}
			}
			this.qj =
				tt(this.qj, m);
			g = a.j.U(g);
			i = b.j.U(i);
			if (ip(g) || ip(i)) return l;
			a.wd(g) && b.wd(i) && (a.Y(g), b.Y(i));
			a = this.ik(c, f);
			return {
				wc: d[Jb](c),
				id: e,
				text: f,
				Sq: o,
				t: this.W,
				Xf: a,
				hb: {
					x: g,
					y: i,
					color: j,
					size: m
				}
			}
		};
		V.ik = function(a, b) {
			var c = this.D,
				d = c[Xc](a, this.gg),
				e = c[Xc](a, this.hg),
				d = [{
					title: this.qm,
					value: d
				}, {
					title: this.rm,
					value: e
				}];
			W(this.Cd) && (e = c[Xc](a, this.Cd), d[v]({
				title: this.om,
				value: e
			}));
			W(this.bd) && (c = c[Xc](a, this.bd), d[v]({
				title: this.pm,
				value: c
			}));
			return {
				title: b,
				d: d
			}
		};
		V.Tv = function(a, b, c) {
			var a = a.Aa(c.x),
				b = b.Aa(c.y),
				d;
			d = this.zd == gl ? this.sm.lt(c[tb]) : this.zd == pn ? this.af[c[tb]][tb] : this.Dr;
			d = new wt({
				fill: d,
				rb: this.Er,
				stroke: this.Fr
			});
			c = this.tm.mt(c[hc]);
			return {
				x: a,
				y: b,
				b: d,
				Xb: c,
				Zh: c
			}
		};

		function Bw(a, b, c, d, e, f, g, i) {
			this.qo = a;
			this.Ud = b;
			this.Wu = c;
			this.Ro = d;
			this.Gi = e;
			this.nt = f;
			this.Xu = g;
			this.ro = i
		}

		function Cw(a, b, c, d) {
			switch (d) {
				case Hg:
					return a;
				case Gg:
					return (b - 1 - a) % c
			}
		}
		V = Bw[K];
		V.yt = function(a) {
			return 1 >= this.Ud[I] ? this.qo : s.abs(this.Ud[1].u - this.Ud[0].u) * a - this.Xu
		};
		V.Ii = function(a, b, c) {
			a = s[db]((this.Ud[I] - a) / (b * c));
			return 2 > this.Ud[I] || 2 > a
		};
		V.Vv = function(a, b, c, d) {
			for (var a = Cw(a, this.Ud[I], c, this.nt), e = this.yt(c), f = []; a < this.Ud[I]; a += c) {
				var g = this.Ud[a],
					i = g.B ? s.min(e, 2 * g.u, 2 * (this.qo - g.u)) : e,
					j = this.ro(g[x], i, d),
					m = j.aa;
				if (i < e) m = this.ro(g[x], e, d).aa;
				f[v]({
					fa: g.fa,
					B: g.B,
					u: g.u,
					zm: b,
					text: g[x],
					width: j.Yb,
					Ed: j,
					aa: m
				})
			}
			return f
		};
		V.Ao = function(a, b, c) {
			for (var d = a * b, c = 1 < a ? 1 : c, e = [], f = 0; f < a; f++) {
				var g = this.Vv(this.Wu + f * b, f * c, d, c);
				Zp(e, g)
			}
			bq(e, function(a, b) {
				return a.u - b.u
			});
			return e
		};
		V.Cl = function(a, b) {
			var c = this.Ao(a, b, p);
			return Pp(c, function(a, b) {
				return {
					pf: s.max(a.pf, b.Ed.d[I]),
					aa: a.aa || b.aa
				}
			}, {
				pf: 0,
				aa: n
			})
		};
		V.Tj = function() {
			for (var a = 1, b = this.Gi || 1, c = this.Cl(a, b), d = a; c.aa && a < this.Ro;) {
				a++;
				if (this.Ii(0, a, b)) break;
				d = a;
				c = this.Cl(d, b)
			}
			a = b;
			if (!this.Gi)
				for (; c.aa;) {
					b++;
					if (this.Ii(0, d, b)) break;
					a = b;
					c = this.Cl(d, a)
				}
			return {
				Lj: d,
				je: a,
				pf: c.pf * d
			}
		};
		V.Ol = function(a, b, c, d) {
			a = this.Ao(a, b, c);
			d = Pp(a, function(a, b) {
				var c = b.aa ? 1 : 0;
				delete b.aa;
				return a + c
			}, 0) <= a[I] * d;
			return {
				Nh: a,
				qp: d
			}
		};
		V.Gm = function(a, b, c, d) {
			for (var e = s.min(this.Ro, c), a = s.min(a, e), b = this.Gi || b, f = this.Ol(a, b, c, d), g =
					a; !f.qp && a < e;) {
				a++;
				if (this.Ii(0, a, b)) break;
				g = a;
				f = this.Ol(g, b, c, d)
			}
			e = b;
			if (!this.Gi)
				for (; !f.qp;) {
					b++;
					if (this.Ii(0, g, b)) break;
					e = b;
					f = this.Ol(g, e, c, d)
				}
			return {
				Lj: g,
				je: e,
				Nh: f.Nh
			}
		};

		function Dw(a, b, c, d, e, f) {
			xw[N](this, a, b, Xp([yj + d, zj], c), d, e, f);
			this.Jj = b.Go(this.A(Tm));
			a = b.da(this.A(Um), 30);
			if (1 > a || 90 < a) a = 30;
			this.Sr = a;
			this.bi = sr(a);
			this.nm = b.da(this.A(Ui));
			this.Cj = b.da(this.A(Lk), 2);
			this.Gh = b.da(this.A(Km), 0);
			this.Bj = b.ia(this.A(Lm), Eu, Hg)
		}
		xp(Dw, xw);
		V = Dw[K];
		V.kn = function() {
			return Aj + this[ic]
		};
		V.xf = function(a, b) {
			return Dw.Pb.xf[N](this, a, a.a[w], 1 == this[Wa] ? a.a[C] : a.a[R], b)
		};
		V.jn = function(a) {
			if (0 == this[ic]) {
				var b = a.tc,
					c = this.Ra[M],
					d = this[J].t[M],
					e = a.f.t[M],
					f = a.Vf == ol ? this[J][x] : S,
					g = this,
					i = new Bw(a[w], this.r, this.nm, this.Cj, this.Gh, this.Bj, c, function(a, c, d) {
						return Iu(b, a, g.Ra, c, d)
					}),
					j = this.Gh || 1,
					m, o;
				this.ic == ol && (W(this.Jj) ? this.Jj ? o = this.Ph(b) : m = i.Tj() : this.r[I] * c / (this
						.Cj * j) <= a[w] ? (m = i.Tj(), m.je > j && (o = this.Ph(b), m = l)) : o = this
					.Ph(b));
				var q = Iu(b, f, this[J].t, a.a[w], p),
					u = this.Jc,
					y = s.max(u, s[z](c / 1.618)),
					D = s.max(u, s[z](c / 3.236)),
					Y = function() {
						return {
							key: Ln,
							min: o.minHeight +
								u,
							max: o.maxHeight + u,
							T: [y - u]
						}
					},
					L = [];
				L[v]({
					key: kh,
					min: u,
					T: [p]
				});
				0 < q.d[I] && L[v]({
					key: Nn,
					min: d + u,
					T: [p]
				});
				a.f[fc] == jh && L[v]({
					key: ik,
					min: e + u,
					T: [p]
				});
				var X = L[I];
				m ? L[v]({
					key: Ln,
					min: c + u,
					T: [y - u]
				}) : o && L[v](Y());
				var G = L[I];
				if (m)
					for (var aa = 1; aa < m.pf; aa++) L[v]({
						key: Ln,
						min: c + u,
						T: [D - u]
					});
				c = L[I];
				for (aa = 1; aa < q.d[I]; aa++) L[v]({
					key: Nn,
					min: d + u,
					T: [this.em - u]
				});
				var d = Zu(L, a[Q] - a.a[P]),
					na = d.ticks || [],
					jb;
				m && (jb = i.Gm(m.Lj, m.je, na[I], 0), !W(this.Jj) && jb.je > j && (jb = m = l, o = this.Ph(
					b), L[X] = Y(), L = $u(L, 0, G, c, ba), d = Zu(L, a[Q] - a.a[P])));
				var Da = a.a[P],
					na = d.ticks || [];
				if (0 < na[I]) {
					for (aa = 1; aa < na[I]; aa++) na[aa] += na[aa - 1];
					if (m) this.Re = Op(jb.Nh, function(a) {
						var b = Op(a.Ed.d, function(b, c) {
							return {
								x: 0,
								y: na[a.zm + c],
								length: a[w],
								text: b
							}
						}, this);
						return {
							fa: a.fa,
							B: a.B,
							o: {
								text: a[x],
								t: this.Ra,
								d: b,
								Za: Eh,
								Pa: Ni,
								K: a.Ed.aa ? a[x] : S,
								anchor: {
									x: a.u,
									y: Da
								}
							}
						}
					}, this);
					else if (o) aa = na[0], i = s.min(aa - u, o.maxHeight), this.Re = this.Rq(b, Da + aa -
						i, i, o.je);
					Da += Jp(na)
				}
				i = d[J] || [];
				if (0 < i[I]) {
					j = Iu(b, f, this[J].t, a.a[w], i[I]);
					this[J].K = j.aa ? f : S;
					for (aa = 0; aa < i[I]; aa++) Da += i[aa], this[J].Pa =
						Ni, this[J].d[v]({
							x: a.a[C] + a.a[w] / 2,
							y: Da,
							length: a.a[w],
							text: j.d[aa]
						})
				}
				f = d.legend || [];
				if (0 < f[I]) Da += f[0], a.f.pb = new hs(Da - e, a.a[R], Da, a.a[C])
			}
		};
		V.Ph = function(a) {
			function b(b) {
				b = a(b[x], c)[w] * e + d * f;
				return s[db](b)
			}
			var c = this.Ra,
				d = c[M],
				e = s.sin(this.bi),
				f = s.cos(this.bi),
				g = this.Gh;
			g || (g = 2 > this.r[I] ? 1 : s[db]((d + this.Jc) / e / s.abs(this.r[1].u - this.r[0].u)));
			for (var i = 0, j = 0; j < this.r[I]; j += g) i = s.max(b(this.r[j]), i);
			j = b({
				text: ne
			});
			return {
				minHeight: s.min(i, j),
				maxHeight: i,
				je: g
			}
		};
		V.Rq = function(a, b, c, d) {
			for (var e = Cw(0, this.r[I], d, this.Bj), c = (c - this.Ra[M] * s.cos(this.bi)) / s.sin(this
					.bi), c = s[B](c), f = []; e < this.r[I]; e += d) {
				var g = this.r[e],
					i = Iu(a, g[x], this.Ra, c, 1),
					j = {
						text: g[x],
						t: this.Ra,
						d: [],
						kf: -this.Sr,
						Za: Ni,
						Pa: fn,
						K: i.aa ? g[x] : S,
						anchor: {
							x: g.u,
							y: b
						}
					};
				0 < i.d[I] && j.d[v]({
					x: 0,
					y: 0,
					length: c,
					text: i.d[0]
				});
				f[v]({
					fa: g.fa,
					B: g.B,
					o: j
				})
			}
			return f
		};
		V.hn = function(a) {
			if (0 == this[ic]) {
				var b = a.tc,
					c = this.Ra[M],
					d = new Bw(a[w], this.r, this.nm, this.Cj, this.Gh, this.Bj, c, Z(function(a, c, d) {
						return Iu(b, a, this.Ra, c, d)
					}, this)),
					e;
				this.ic == Pj && (e = d.Tj());
				var f = this.Jc,
					g = s.max(this.Jc, s[z](c / 3.236)),
					i = s.max(this.Jc, s[z](c / 1.618)),
					i = this[F] == Ho ? g : i,
					j = s.max(f, s[z](c / 3.236)),
					m, o;
				this[F] == Ho ? this.gm == Fj ? (m = fn, o = g) : (m = Ni, o = -g) : (m = Eh, o = 0);
				g = [];
				g[v]({
					key: jo,
					min: f,
					T: [p]
				});
				if (e)
					for (var q = 0; q < e.pf; q++) g[v]({
						key: Ln,
						min: c + f,
						T: [(0 == q ? i : j) - f]
					});
				var u = Zu(g, s[B](a.a[Q] / 2)).ticks || [];
				if (0 < u[I]) {
					for (q = 1; q < u[I]; q++) u[q] += u[q - 1];
					c = d.Gm(e.Lj, e.je, u[I], 0.5);
					this.Re = Op(c.Nh, function(b) {
						var c = b.Ed.d;
						c.reverse();
						c = Op(c, function(a, c) {
							return {
								x: 0,
								y: -u[b.zm + c],
								length: b[w],
								text: a
							}
						}, this);
						return {
							fa: b.fa,
							B: b.B,
							o: {
								text: b[x],
								t: this.Ra,
								d: c,
								Za: m,
								Pa: fn,
								K: b.Ed.aa ? b[x] : S,
								anchor: {
									x: o + b.u,
									y: a.a[P]
								}
							}
						}
					}, this)
				}
			}
		};
		V.jk = function(a) {
			var b = {};
			b.vg = -1 == this[Wa];
			b.tf = a.a[C];
			b.sf = a.a[R];
			Ca(b, Gj);
			return b
		};

		function Ew(a, b, c) {
			for (var d = new Date(a), e = n, f = b[I], g = [s[B], s[db]][c], i = 0; i < f; ++i) {
				var j = a[Em + Fw[i]],
					m = a[oj + Fw[i]][Uc](a),
					o = b[i],
					q = Gw[i];
				if (0 == o) e = e || 0 != m && 0 != c, j[Uc](d, [q]);
				else return e ? j[Uc](d, [q + o * (1 + s[B]((m - q) / o))]) : j[Uc](d, [q + o * g((m - q) /
					o)]), d
			}
		}

		function Hw(a, b, c) {
			var d = Yp(a),
				e;
			for (e = 0; e < d[I] && 0 == b[e]; ++e) d[e] = 0;
			if (e == d[I]) return l;
			if (0 == e) return d[0] = c(a[0] / b[0]) * b[0], d;
			var f = 0;
			a[e - 1] >= Iw[e - 1] ? f = 0.7 : 0 < a[e - 1] && (f = 0.1);
			d[e] = c((a[e] + f) / b[e]) * b[e];
			return d
		}

		function Jw(a, b, c) {
			var d = Op(b, function(a) {
				return [s.log(Kw(a))]
			});
			if (!c) return a = Su(s.log(a), d), b[a];
			c = Tu(s.log(a), d, c);
			a = c[0];
			return a <= d[I] - 1 ? b[a] : Hw(Lw(s.exp(c[1])), Jp(b), s[z])
		}

		function Mw(a) {
			a = Tp(a, function(a) {
				return 0 != a
			});
			return s.max(0, a)
		}

		function Kw(a) {
			if (a == l) return -1;
			for (var b = 0, c = a[I], d = 0; d < c; ++d) b += a[d] * Nw[d];
			return b
		}

		function Lw(a) {
			for (var b = [], c = Nw[I] - 1; 0 <= c; c--) b[c] = s[B](a / Nw[c]), a -= b[c] * Nw[c];
			return b
		}

		function Ow(a) {
			var b = [],
				a = s[B](a / 1E3);
			b[v](s[B](a / 3600));
			b[v](s[B](a / 60) - 60 * b[0]);
			b[v](a - 3600 * b[0] - 60 * b[1]);
			return b
		}
		var Fw = "Milliseconds,Seconds,Minutes,Hours,Date,Month,FullYear".split(","),
			Gw = [0, 0, 0, 0, 1, 0, 0],
			Iw = [500, 30, 30, 12, 15, 6, 0],
			Nw = [1, 1E3, 6E4, 36E5, 864E5, 2629743830, 31556926E3];

		function yw(a, b, c) {
			this.el = a;
			this.hu = b;
			this.zl = c
		}
		xp(yw, ww);
		V = yw[K];
		V.oc = function(a, b) {
			yw.Pb.oc[N](this, a, b);
			var c = a.fi(this.A(gj)),
				d = [];
			d[v](c.millisecond);
			d[v](c.second);
			d[v](c.minute);
			d[v](c.hour);
			d[v](c.day);
			d[v](c.month);
			d[v](c.year);
			this.zl = Pw([d, gq(this[zb], d[I]), this.zl])
		};

		function Pw(a) {
			a = hq[Uc](l, a);
			return Op(a, function(a) {
				return Rp(a, function(a) {
					return a
				})
			})
		}
		V.R = function(a, b) {
			return a.R(b)
		};
		V.od = function(a) {
			return lp(a) ? a[Vb]() : NaN
		};
		V.am = function(a) {
			return new Date(a)
		};
		V.Jk = function() {
			var a = new Date(0);
			a.setFullYear(0);
			return a
		};
		V.kl = function(a, b, c) {
			var d = (b - a) / 6,
				e = Jw(d, this.el, this.hu);
			c ? (a = Ew(new Date(a), e, 0), b = Ew(new Date(b), e, 1)) : (a = Ew(new Date(a), e, 1), b = Ew(
				new Date(b), e, 0));
			d = Lw(d);
			d = Hw(d, e, s[z]);
			d = 0 < Kw(d) ? d : e;
			this.r = [];
			for (e = a; e < b;) {
				this.r[v](e[Vb]());
				var f = d,
					g = new Date(e),
					i;
				b: {
					for (i = 0; i < f[I]; ++i)
						if (0 != f[i]) {
							i = n;
							break b
						} i = k
				}
				if (!i) {
					for (i = 0; i < f[I]; ++i) {
						var j = Fw[i],
							m = g[Em + j],
							j = g[oj + j][Uc](g, []);
						m[Uc](g, [j + f[i]])
					}
					g <= e && h("Error adding duration to date")
				}
				e = g
			}(c || e <= b) && this.r[v](e[Vb]());
			if (c) this.M = a[Vb](), this.Q = e[Vb]();
			this.ou = this.pu(d)
		};
		V.$i = function(a) {
			return this.ou[rc](a)
		};
		V.pu = function(a) {
			a = this.zl[Mw(a)];
			return new google[wc].DateFormat({
				pattern: a
			})
		};
		var Qw = [
				[0, 0, 0, 0, 1],
				[0, 0, 0, 0, 2],
				[0, 0, 0, 0, 7],
				[0, 0, 0, 0, 0, 1],
				[0, 0, 0, 0, 0, 3],
				[0, 0, 0, 0, 0, 6],
				[0, 0, 0, 0, 0, 12],
				[0, 0, 0, 0, 0, 0, 1],
				[0, 0, 0, 0, 0, 0, 5],
				[0, 0, 0, 0, 0, 0, 10],
				[0, 0, 0, 0, 0, 0, 25],
				[0, 0, 0, 0, 0, 0, 50],
				[0, 0, 0, 0, 0, 0, 100]
			],
			Rw = [vi, vi, vi, vi, vi, "MM y", Yo],
			Sw = [
				[1],
				[2],
				[5],
				[10],
				[20],
				[50],
				[100],
				[200],
				[500],
				[0, 1],
				[0, 2],
				[0, 5],
				[0, 10],
				[0, 15],
				[0, 30],
				[0, 0, 1],
				[0, 0, 2],
				[0, 0, 5],
				[0, 0, 10],
				[0, 0, 15],
				[0, 0, 30],
				[0, 0, 0, 1],
				[0, 0, 0, 2],
				[0, 0, 0, 3],
				[0, 0, 0, 4],
				[0, 0, 0, 6],
				[0, 0, 0, 12],
				[0, 0, 0, 0, 1],
				[0, 0, 0, 0, 2],
				[0, 0, 0, 0, 7],
				[0, 0, 0, 0, 0, 1],
				[0, 0, 0, 0, 0, 3],
				[0, 0,
					0, 0, 0, 6
				],
				[0, 0, 0, 0, 0, 12],
				[0, 0, 0, 0, 0, 0, 1],
				[0, 0, 0, 0, 0, 0, 5],
				[0, 0, 0, 0, 0, 0, 10],
				[0, 0, 0, 0, 0, 0, 25],
				[0, 0, 0, 0, 0, 0, 50],
				[0, 0, 0, 0, 0, 0, 100]
			],
			Tw = [wi, wi, "dd MMM y HH:mm", "dd MMM y HH:00", "dd MMM y", "MMM y", Yo];

		function Uw(a, b, c, d, e, f, g, i) {
			if (!(c = Vw(a, b, c, d, e, f, g, i))) 0 <= a || 0 >= b || 1 == g ? c = {
				Kb: a,
				Lc: b
			} : (c = s.max(1, s.min(g - 1, s[z](g * (b / (b - a))))), g -= c, a = s.max(b / c, -a / g),
			c = {
				Kb: -g * a,
				Lc: c * a
			});
			return c
		}

		function Vw(a, b, c, d, e, f, g, i) {
			var j = b - a;
			if (0 >= j) return l;
			for (var m = s[B](s.log(j) / s.log(10)), j = Uu(5, function(a) {
					return {
						kh: s.pow(10, m - a),
						Ki: 5
					}
				}), o = [], q = n, u = 0; u < j[I]; ++u) {
				var y = j[u],
					D = Ww(a / (y.kh * y.Ki), b / (y.kh * y.Ki), c, d, e, f, g),
					o = o[hb](Op(D, function(a) {
						return [y, a]
					}));
				if (q) break;
				q = 0 != D[I]
			}
			return Pp(o, function(a, b) {
				for (var c = b[0], d = b[1], e = d.Bv; e <= d.Av; e += d.Cv) {
					var f = s[z](c.Ki * e),
						j = s[z](c.Ki * (e + g * d.Dv)),
						m = i(f, j, c.kh);
					m > a.ec && (a = {
						ec: m,
						xp: {
							Kb: s[z](f) * c.kh,
							Lc: s[z](j) * c.kh
						}
					})
				}
				return a
			}, {
				ec: -p,
				xp: l
			}).xp
		}

		function Ww(a, b, c, d, e, f, g) {
			for (var i = [], j = b - a, m = d + f, o = s[db](j / (1 - (c + e)) / g), j = s[B](j / (1 - m) /
				g); o <= j; ++o) {
				var m = o * g,
					q = s[db](s.max(a - d * m, b - (1 - e) * m)),
					u = s[B](s.min(a - c * m, b - (1 - f) * m)),
					y = 1;
				0 < b && 0 > a ? 1 < g && (q = s[db](q / o) * o, u = s[B](u / o) * o, y = o) : 0 <= a ? q = s
					.max(0, q) : u = s.min(-m, u);
				0 <= u - q && i[v]({
					Dv: o,
					Cv: y,
					Bv: q,
					Av: u
				})
			}
			return i
		}

		function Xw(a) {
			if (0 == a) return 0;
			for (0 > a && (a = -a); 0 == s[z](a % 10);) a = s[z](a / 10);
			return 1 == a || 5 == a ? 0.5 : s[B](s.log(a) / s.log(10)) + 1
		};

		function Yw() {}
		xp(Yw, ww);
		V = Yw[K];
		V.Ak = function() {
			return 4
		};
		V.oc = function(a, b) {
			Yw.Pb.oc[N](this, a, b);
			this.Qd = l;
			this.Pk = a.Mc(this.A(hj));
			this.rd = a.R(this.A(Kn), [10, 2, 5, 1])
		};
		V.kl = function(a, b, c) {
			var d, e, f, g;
			c ? (c = Z(Zw, l, this.rd, this.cb, a, b), d = -1.0E-4, e = 1 / s.max(this.cb, 3), f = d, g =
				e) : (d = -1 / s.max(this.cb, 3), e = 0, f = d, g = e, this.rd[0] *= -1, c = Z(Zw, l, this
					.rd, this.cb, this.M, this.Q));
			c = Uw(a, b, d, e, f, g, this.cb, c);
			d = (c.Lc - c.Kb) / this.cb;
			this.r = [];
			for (e = 0; e <= this.cb; ++e) this.r[v](c.Kb + d * e);
			this.M = s.min(c.Kb, a);
			this.Q = s.max(c.Lc, b);
			a: if (a = this.Pk ? d / this.Pk : d, 0 == a) a = 0;
				else {
					a = s.abs(a);
					for (b = 0; 16 > b; ++b) {
						if (s.abs(a - s[z](a)) < 1.0E-7 * a) {
							a = b;
							break a
						}
						a *= 10
					}
					a = 16
				} this.zt = a;
			this.Qd = new google[wc][Tb]({
				pattern: this[zb],
				fractionDigits: this[zb] ? l : this.zt,
				scaleFactor: this.Pk
			})
		};

		function Zw(a, b, c, d, e, f, g) {
			function i(a) {
				return s.pow(Xw(a), 1.2)
			}
			c = a[0] * (d - c) / (g * (f - e));
			d = (f - e) / b;
			for (g = 1; g < b; ++g) c -= a[1] * i(e + g * d);
			c -= a[2] * i(e);
			c -= a[2] * i(f);
			return c -= a[3] * i(d)
		}
		V.R = function(a, b) {
			return a.Mc(b)
		};
		V.$i = function(a) {
			return this.Qd[rc](a)
		};
		V.od = function(a) {
			return a
		};
		V.am = function(a) {
			return a
		};
		V.Jk = function() {
			return 0
		};

		function $w(a) {
			this.el = a
		}
		xp($w, ww);
		V = $w[K];
		V.oc = function(a, b) {
			$w.Pb.oc[N](this, a, b);
			this.rd = a.R(this.A(Kn), [10, 2, 1])
		};
		V.R = function(a, b) {
			return a.rx(b)
		};
		V.od = function(a) {
			return W(a) ? 1E3 * (60 * (60 * a[0] + a[1]) + a[2]) : NaN
		};
		V.am = function(a) {
			return Ow(a)
		};
		V.Jk = function() {
			return Ow(0)
		};
		V.kl = function(a, b, c) {
			if (-1 == this.cb) {
				var d = (b - a) / 6,
					e = Jw(d, this.el, 0),
					f = Kw(e),
					d = s.max(1, s[z](d / f)) * f;
				c ? (a = s[B](a / d) * d, b = s[db](b / d) * d) : (a = s[db](a / d) * d, b = s[B](b / d) *
					d);
				this.r = [];
				for (f = a; f < b;) this.r[v](f), f += d;
				this.r[v](f);
				if (c) this.M = a, this.Q = b;
				this.vo = Mw(e)
			} else this.$t(a, b, c)
		};
		V.$t = function(a, b, c) {
			var d, e, f, g;
			c ? (c = Z(ax, l, this.rd, this.cb, a, b), d = -1.0E-4, e = 1 / s.max(this.cb, 3), f = d, g =
				e) : (d = -1 / s.max(this.cb, 3), e = 0, f = d, g = e, this.rd[0] *= -1, c = Z(ax, l, this
					.rd, this.cb, this.M, this.Q));
			c = Uw(a, b, d, e, f, g, this.cb, c);
			d = (c.Lc - c.Kb) / this.cb;
			this.r = [];
			for (e = 0; e <= this.cb; ++e) this.r[v](c.Kb + d * e);
			this.M = s.min(c.Kb, a);
			this.Q = s.max(c.Lc, b);
			this.vo = 0 == d - s[B](d) ? 1 : 0
		};

		function ax(a, b, c, d, e, f) {
			c = a[0] * (d - c) / (f - e);
			f = (f - e) / b;
			for (d = 0; d <= b; ++d) c -= a[1] * Xw(e + d * f);
			return c -= a[2] * Xw(f)
		}
		V.$i = function(a) {
			return (new google[wc].DateFormat({
				pattern: this[zb] ? this[zb] : 1 >= this.vo ? Bf : Af
			}))[rc](new Date(1970, 0, 1, a[0], a[1], a[2], 0))
		};
		var bx = [
			[0, 1, 0, 0],
			[0, 2, 0, 0],
			[0, 5, 0, 0],
			[0, 10, 0, 0],
			[0, 20, 0, 0],
			[0, 30, 0, 0],
			[0, 0, 1, 0],
			[0, 0, 5, 0],
			[0, 0, 10, 0],
			[0, 0, 15, 0],
			[0, 0, 30, 0],
			[0, 0, 0, 1],
			[0, 0, 0, 2],
			[0, 0, 0, 3],
			[0, 0, 0, 4],
			[0, 0, 0, 6],
			[0, 0, 0, 12]
		];
		vw().aj("timeofday", function() {
			return new $w(bx)
		});
		vw().aj("date", function() {
			return new yw(Qw, 3, Rw)
		});
		vw().aj("datetime", function() {
			return new yw(Sw, 3, Tw)
		});
		vw().aj(gl, function() {
			return new Yw
		});
		var cx = {},
			dx = n;

		function Aw(a) {
			var b = {};
			va(b, a[tb] || a);
			var c = mt(b[tb]);
			c == U ? (b.wf = a.darker || c, b.si = a.lighter || c) : (c = it(c), b.wf = a.darker || gt(lt([0, 0,
				0
			], c, 0.25)), b.si = a.lighter || gt(lt([255, 255, 255], c, 0.25)));
			return b
		};

		function ex(a, b, c, d, e, f) {
			xw[N](this, a, b, Xp([Eo + d, Fo], c), d, e, f);
			if (this[F] == Ho) this.direction = -this[Wa]
		}
		xp(ex, xw);
		V = ex[K];
		V.kn = function() {
			return Go + this[ic]
		};
		V.xf = function(a, b) {
			return ex.Pb.xf[N](this, a, a.a[Q], 1 == this[Wa] ? a.a.top : a.a[P], b)
		};
		V.jn = function(a) {
			var b = a.tc,
				c = this.Ra[M],
				d = this[J].t[M],
				e = a.Vf == ol ? this[J][x] : S,
				f = this.Jc,
				g = Pp(this.r, function(a, c) {
					return s.max(a, b(c[x], this.Ra)[w])
				}, 0, this),
				i = b(ne, this.Ra)[w],
				i = s.min(i, g),
				j = Iu(b, e, this[J].t, a.a[Q], p),
				m = [];
			this.ic == ol ? m[v]({
				key: im,
				min: f,
				T: [c - f]
			}) : m[v]({
				key: im,
				min: 0,
				T: [p]
			});
			0 < j.d[I] && m[v]({
				key: Nn,
				min: d + f,
				T: [p]
			});
			this.ic == ol && m[v]({
				key: Ln,
				min: i + f,
				max: g + f,
				T: [p]
			});
			for (c = 1; c < j.d[I]; c++) m[v]({
				key: Nn,
				min: d + f,
				T: [this.em - f]
			});
			var d = Zu(m, 0 == this[ic] ? a.a[C] : a[w] - a.a[R]),
				o = 0 == this[ic] ? 0 : a[w],
				j = d[J] || [];
			if (0 < j[I]) {
				m = Iu(b, e, this[J].t, a.a[Q], j[I]);
				this[J].K = m.aa ? e : S;
				for (c = 0; c < j[I]; c++) o += j[c] * (0 == this[ic] ? 1 : -1), this[J].kf = -90, this[J]
					.Pa = 0 == this[ic] ? Ni : fn, this[J].d[v]({
						x: o,
						y: a.a.top + a.a[Q] / 2,
						length: a.a[Q],
						text: m.d[c]
					})
			}
			if (this.ic == ol) {
				var e = d.ticks[0] || 0,
					o = o + e * (0 == this[ic] ? 1 : -1),
					q = s.min(g, e - f);
				this.Re = q < i ? [] : Op(this.r, function(b, c) {
					var d = 0 == this[ic] ? Ni : fn,
						e = Eh;
					this.Kq == lh && (0 == c && (e = 1 == this[Wa] ? fn : Ni), c == this.r[I] - 1 &&
						(e = 1 == this[Wa] ? Ni : fn));
					return this.Fn(a, b, o, q, d, e, 0)
				}, this)
			}
		};
		V.hn = function(a) {
			var b = a.tc,
				c = this.Ra[M],
				d = this.Jc,
				e = s.max(this.Jc, s[z](c / 3.236)),
				c = s.max(this.Jc, s[z](c / 1.618)),
				c = this[F] == Ho ? e : c,
				f, g;
			this[F] == Ho ? this.gm == Fj ? (f = Ni, g = e) : (f = fn, g = -e) : (f = Eh, g = 0);
			var e = Pp(this.r, function(a, c) {
					return s.max(a, b(c[x], this.Ra)[w])
				}, 0, this),
				i = b(ne, this.Ra)[w],
				i = s.min(i, e),
				j = [];
			j[v]({
				key: im,
				min: d,
				T: [p]
			});
			this.ic == Pj && j[v]({
				key: Ln,
				min: i + d,
				max: e + c,
				T: []
			});
			var c = Zu(j, a.a[w] / 2),
				m = 0 == this[ic] ? a.a[C] : a.a[R];
			if (this.ic == Pj) {
				var c = c.ticks[0] || 0,
					o = s.min(e, c - d),
					m = m + (c - o) * (0 == this[ic] ?
						1 : -1);
				this.Re = Op(this.r, function(b) {
					return this.Fn(a, b, m, o, 0 == this[ic] ? fn : Ni, f, g)
				}, this)
			}
		};
		V.Fn = function(a, b, c, d, e, f, g) {
			var a = Iu(a.tc, b[x], this.Ra, d, 1),
				i = Op(a.d, function(a) {
					return {
						x: 0,
						y: 0,
						length: d,
						text: a
					}
				}, this);
			return {
				fa: b.fa,
				B: b.B,
				o: {
					text: b[x],
					t: this.Ra,
					d: i,
					Za: e,
					Pa: f,
					K: a.aa ? b[x] : S,
					anchor: {
						x: c,
						y: b.u - g
					}
				}
			}
		};
		V.jk = function(a) {
			var b = {};
			b.vg = -1 == this[Wa];
			b.tf = a.a.top;
			b.sf = a.a[P];
			Ca(b, Ko);
			return b
		};

		function fx(a, b, c, d) {
			this.D = a;
			this.k = b;
			this.ra = c;
			this.bf = l;
			this.h = d;
			this.Oh = this.Z = this.sa = this.La = this.Ma = l;
			this.h.jc = b.ia(Yi, Bu, ri);
			d.jc == xh && d.N != T && h(r("Focus target " + d.jc +
				" is not supported for the chosen chart type."));
			d.N == oh ? this.Oh = new zw(this.D, this.k, this.ra, d) : (this.bf = b.R(ei, Fu), this.ps());
			a = 0 < d.gb.bars || 0 < d.gb.area || 0 < d.gb.steppedArea;
			this.h.Vc = this.k.za(ak) && a;
			this.h.dn = this.k.za(Wn, this.h.jc == xh);
			this.h.im = this.k.za(Jm, n);
			this.os()
		}
		V = fx[K];
		V.ps = function() {
			var a = this.h,
				b = this.D,
				c = a.N == rm ? function() {
					return rm
				} : Z(function(b) {
					return this.k.ia(Cm + b + ve, pu, a.fm)
				}, this),
				c = gx(b, c);
			a.v = [];
			a.df = {};
			for (var d = 0; d < b[dc](); d++) {
				var e = b[Jb](d),
					f = b[H](d, 0),
					g = Op(c.Zc, function(a) {
						return b[Xc](d, a.w[wb][0]) || S
					});
				a.v[v]({
					data: f,
					dj: g,
					wc: e
				});
				a.df[e] = d
			}
			a.e = [];
			a.yj = {};
			for (d = 0; d < c.Xm[I]; d++) e = this.cr(d, c.Xm[d]), a.e[v](e), a.yj[e.wc] = d;
			a.Zc = c.Zc;
			a.fe = c.fe;
			a.gb = {};
			a.Th = [];
			a.mf = {};
			for (d = 0; d < a.e[I]; ++d) c = a.e[d], a.Th[v](c.Ja), e = a.mf[c.Ja], W(e) ? e != c[Fc] && h(
					"All series on a given axis must be of the same data type") :
				a.mf[c.Ja] = c[Fc], a.gb[c[F]] = (a.gb[c[F]] || 0) + 1;
			aq(a.Th);
			a.$c = [];
			for (c = 0; c < a.e[I]; c++)
				if (e = a.e[c], e.qh && a.$c[v]({
						id: e.id,
						text: e.fj,
						b: new wt({
							fill: e[tb][tb]
						}),
						index: c,
						z: e.z
					}), a.jc == xh) e.z = n
		};

		function gx(a, b) {
			for (var c = [], d = [], e = l, f = 0, g = 0; g < a[mb](); ++g) {
				var i = a[Fb](g),
					j = a.getColumnProperty(g, jm) || (0 == g ? Fi : pi);
				j == Fi && (0 < f && h("Unexpected domain column (column #" + g + fe), e = {
					w: {},
					dataType: i
				}, d[v](e));
				j == pi && 0 == f && (f = b(c[I]), e = {
					type: f,
					dataType: i,
					w: {}
				}, c[v](e), f = f == wh ? 4 : 1);
				j == pi && (f--, i != e[Fc] && h(
					"All data columns of the same series must be of the same data type"));
				e.w[j] = e.w[j] || [];
				e.w[j][v](g)
			}
			0 < f && h("Last serie does not have enough data columns (missing " + f + fe);
			e = 0;
			i = d[0][Fc];
			for (g = 0; g < c[I]; ++g) {
				d[I] <=
					e && h("Serie #" + g + " does not have a domain column.");
				if ((j = d[e + 1]) && j.w[wb][0] <= c[g].w[A][0]) ++e, i != d[e][Fc] && h(
					"All domains must be of the same data type");
				c[g].Ad = e
			}
			return {
				Xm: c,
				Zc: d,
				fe: i
			}
		}
		V.cr = function(a, b) {
			var c = b[F],
				d = b.w,
				e = b.Ad,
				f = this.k,
				g = Cm + a + me,
				i = d[A],
				j = this.D.getTableColumnIndex(i[0]),
				m = this.D[Cb](i[0]) || S,
				o = c == rm ? 0 : 2,
				q = f.da([g + Ml, Ml], c == rm ? 7 : 0),
				u = c == Ak || c == Cg || c == rm ? 0 < q : k;
			0 == q && (q = c == rm ? 7 : 6);
			q /= 2;
			0 < q && (q += 1);
			var y = f.R(g + Yh, this.bf[a % this.bf[I]]),
				y = Aw(y),
				D = l;
			if (c == Cg || c == hn) D = f.da([g + Dg, Dg]), D = yt(y[tb], D);
			var o = f.da([g + Ck, Ck], o),
				Y = zt(y[tb], o),
				L = c == hn ? D : yt(y[tb]),
				X = this.Ur(d, f, g, y);
			return {
				id: this.D.getColumnId(i[0]),
				title: m,
				dataType: b[Fc],
				B: k,
				wc: j,
				w: d,
				Ad: e,
				hc: X,
				color: y,
				Hm: L,
				Ha: Y,
				Jq: D,
				type: c,
				Ah: f.be(g + ap, 0),
				lineWidth: o,
				yr: q,
				Hq: 12,
				Ze: f.ia([g + ki, ki], Du, U),
				ij: f.da([g + Ym, Ym], 1),
				vm: u,
				c: [],
				mm: [],
				Ja: f.da(g + zn, 0),
				qh: f.za(g + Qo, k),
				fj: f.Hc(g + fk, m),
				z: f.za(g + Mi, k)
			}
		};
		V.Ur = function(a, b, c, d) {
			function e(a, b) {
				return [c + Yj + a + me + b, c + Zj + b, Yj + a + me + b, Zj + b]
			}
			var f = a.interval;
			if (!f) return l;
			for (var a = {
					Jd: [],
					qe: [],
					Xh: [],
					c: [],
					areas: [],
					d: [],
					jg: {}
				}, g = {}, i = 0; i < f[I]; i++) {
				var j = f[i],
					m = this.D.getColumnId(j) || this.D[Cb](j) || yi,
					o = b.Wh(e(m, vn), qu);
				switch (o) {
					case Pg:
						a.Jd[v](j);
						break;
					case kn:
						a.qe[v](j);
						break;
					case nh:
						a.Xh[v](j);
						break;
					case Nl:
						a.c[v](j);
						break;
					case Cg:
						a[$c][v](j);
						break;
					case Ak:
						a.d[v](j);
						break;
					case U:
						break;
					default:
						h(r("Invalid interval style: " + o))
				}
				m in g ? g[m][v](j) : g[m] = [j]
			}
			if (1 <
				a.Jd[I] && 0 == a.qe[I]) a.qe = [a.Jd[0], a.Jd[a.Jd[I] - 1]];
			0 != a.qe[I] % 2 && h(r("Stick-intervals must be defined by an even number of columns"));
			0 != a[$c][I] % 2 && h(r("Area-intervals must be defined by an even number of columns"));
			for (m in g)
				for (var o = b.da(e(m, Ck)), i = b.da(e(m, Ti)), j = b.Hc(e(m, Yh)), j = hx(j, d), i =
						new wt({
							stroke: j,
							fill: j,
							rb: i,
							Qa: o
						}), j = b.da(e(m, Og)), f = b.da(e(m, Gm)), q = b.da(e(m, mh)), u = b.da(e(m, Ml)),
						o = b.Wh(e(m, vn), qu), y = b.za(e(m, Wj)[hb]([c + Wj, Wj])), D = b.ia(e(m, ki)[hb](
							[c + ki, ki]), Du, U), Y = b.da(e(m, Ym)[hb]([c +
							Ym, Ym
						]), 1), o = {
							style: o,
							b: i,
							Zq: j,
							ar: f,
							$q: q,
							Qq: u,
							Qe: y,
							Ze: D,
							ij: Y
						}, f = g[m], i = 0; i < f[I]; ++i) j = f[i], a.jg[j] = o;
			return a
		};
		V.os = function() {
			var a = this.h;
			switch (a.N) {
				case T:
					Ca(a, this.k.ia(nl, uu, S));
					a[Qb] || h(r("Unspecified orientation."));
					this.Z = [];
					this.Ma = [];
					this.La = [];
					var b, c, d, e;
					switch (a[Qb]) {
						case Gj:
							d = Dw;
							e = this.Ma;
							b = ex;
							c = this.La;
							break;
						case Ko:
							d = ex, e = this.La, b = Dw, c = this.Ma
					}
					for (var f = 0; f < a.Th[I]; ++f) {
						var g = a.Th[f],
							i = new b(a, this.k, [xn + g, yn], g, Ho, Sl);
						i[F] != Ho && h(r("Target-axis must be of type value"));
						this.Z[g] = i;
						c[g] = i
					}
					this.Z[0] || h(r("Axis #0 must have some data column associated with it."));
					this.sa = new d(a, this.k, [Gi],
						0, this.Ps(), Nk);
					e[v](this.sa);
					break;
				case rm:
				case oh:
					this.Ma = [new Dw(a, this.k, [], 0, Ho, Sl)], this.La = [new ex(a, this.k, [], 0, Ho,
						Sl)]
			}
			this.Qs()
		};
		V.Ps = function() {
			return this.D[Fb](0) == pn || !this.h.lj ? this.eu(this.du()) : Ho
		};
		V.du = function() {
			var a = [Ak, Cg, hn, Pg, wh],
				b = {};
			Mp(a, function(a, c) {
				b[a] = c
			});
			var c = Pp(this.h.e, function(a, c) {
				return s.max(a, b[c[F]])
			}, 0);
			return a[c]
		};
		V.eu = function(a) {
			switch (a) {
				case Cg:
					return 1 < this.h.v[I] ? Bh : xh;
				case Ak:
				case Pg:
				case hn:
				case wh:
					return xh
			}
			return l
		};
		V.Qs = function() {
			var a = this.h;
			switch (a.N) {
				case rm:
				case oh:
					a.fe == pn && h(r("X values column cannot be of type string"));
					var b = a.mf[0];
					b == pn && h(r("Data column(s) cannot be of type string"));
					var c = this.Ma[0],
						d = this.La[0];
					c[F] != Ho && h(r("The x-axis must be of type value"));
					c.oi(a.fe, this.k);
					d[F] != Ho && h(r("The y-axis must be of type value"));
					d.oi(b, this.k);
					break;
				case T:
					b = this.sa;
					b[F] == Ho && (a.fe == pn && h(r(
						"Domain column cannot be of type string, it should be the X values on a continuous domain axis"
						)), b.oi(a.fe,
						this.k));
					for (b = 0; b < this.Z[I]; ++b) a.mf[b] == pn && h(r("Data column(s) for axis #" + b +
						" cannot be of type string")), this.Z[b].oi(a.mf[b], this.k)
			}
			Mp(this.Ma, function(a) {
				a.ko()
			});
			Mp(this.La, function(a) {
				a.ko()
			})
		};
		V.xm = function() {
			return 1 < this.La[I]
		};
		V.pr = function() {
			for (var a = this.h, b = this.D, c = this.sa, d = 0; d < a.v[I]; d++) {
				for (var e = 0; e < a.e[I]; e++) {
					var f = a.e[e],
						g = this.Z[f.Ja],
						f = b[H](d, f.w[A][0]),
						f = g.j.od(f);
					W(f) && g.yf(f)
				}
				c[F] == Ho && (e = b[H](d, 0), e = c.j.od(e), c.yf(e))
			}
		};
		V.qr = function() {
			for (var a = this.h, b = this.D, c = this.Ma[0], d = this.La[0], e = 0; e < b[dc](); e++)
				for (var f = 0; f < a.e[I]; f++) {
					var g = a.e[f],
						i = g.w[A][0],
						g = b[H](e, a.Zc[g.Ad].w[wb][0]),
						i = b[H](e, i),
						g = c.j.od(g),
						i = d.j.od(i);
					W(g) && c.yf(g);
					W(i) && d.yf(i)
				}
		};
		V.tn = function() {
			var a = this.h;
			this.or();
			a.Vc && Mp(this.Z, function(a) {
				a.Y(0)
			});
			if (a.N == T) {
				this.pr();
				this.sa[F] == Ho && (this.sa.uf(), this.sa.Zf(this.k));
				for (var b = 0; b < this.Z[I]; b++) this.Z[b].uf(), this.Z[b].Zf(this.k)
			} else a.N == oh ? this.Oh.rr(this.Ma[0], this.La[0]) : a.N == rm && this.qr(), this.Ma[0].uf(),
				this.Ma[0].Zf(this.k), this.La[0].uf(), this.La[0].Zf(this.k);
			a.gb.bars && this.$m(Pg);
			a.gb.steppedArea && this.$m(hn);
			a.gb.candlesticks && this.kr();
			a.gb.line && (this.mr(), this.an());
			a.gb.area && this.ir();
			a.gb.scatter &&
				(this.nr(), this.an());
			a.gb.bubbles && this.Oh.jr(this.Ma[0], this.La[0]);
			a.ta = Op(this.Ma, function(b) {
				return b.xf(a, b)
			});
			a.Ka = Op(this.La, function(b) {
				return b.xf(a, b)
			});
			this.lr();
			this.tr();
			a.N == T && a[Qb] == Gj && this.sr();
			b = a.f[fc];
			if ((b == hm || b == gk) && !this.xm())
				if (a.f.pb = new hs(a.a.top, a[w] - a.f.t[M], a.a[P], a.a[R] + a.f.t[M]), a.f.pb[R] < a.f
					.pb[C]) a.f.pb = l;
			this.ur()
		};
		V.or = function() {
			var a = this.h,
				b = this.ra,
				c = this.Ma[0][J].t,
				d = s.max(a[J].t[M], c[M]),
				e = a.f.t[M],
				f = a.f[fc],
				g = a.Pe == Pj ? a[J][x] : S,
				i = S,
				j = S;
			if (a.Vf == Pj) {
				var m = function(a) {
					a = Op(a, function(a) {
						return a[J][x]
					});
					return Np(a, function(a) {
						return a != S
					})[cd](ie)
				};
				switch (a.N) {
					case rm:
					case oh:
						i = m(this.Ma);
						j = m(this.La);
						break;
					case T:
						i = m([this.sa]), j = m(this.Z)
				}
			}
			var i = i && j ? i + ld + j : i ? i : j ? j : S,
				j = s.max(2, s[z](d / 1.618)),
				o = s.max(2, s[z](e / 1.618)),
				q = a.a[w] - 2 * j,
				m = Iu(b, g, a[J].t, q, 1),
				u = 0 < m.d[I] ? m.d[0] : S,
				y = b(u, a[J].t)[w],
				D = s[z](s.max(2,
					1.618 * d)),
				q = s.max(q - y - D, 0),
				b = Iu(b, i, c, q, 1),
				D = 0 < b.d[I] ? b.d[0] : S,
				Y = [];
			Y[v]({
				key: kh,
				min: 2,
				T: [p]
			});
			(u || D) && Y[v]({
				key: Nn,
				min: d + 2,
				T: [j - 2]
			});
			f == Pj && Y[v]({
				key: ik,
				min: e + 2,
				T: [o - 2]
			});
			f = Zu(Y, s[B](a.a[Q] / 2));
			d = a.a.top;
			o = f[J] || [];
			if (0 < o[I]) {
				d += o[0];
				if (u) a[J].d[v]({
					text: u,
					x: a.a[C] + j,
					y: d,
					length: y
				}), a[J].K = m.aa ? g : S;
				if (D) a.cg = {
					text: i,
					t: c,
					d: [],
					Za: Ni,
					Pa: Ni,
					K: b.aa ? i : S
				}, a.cg.d[v]({
					text: D,
					x: a.a[R] - j,
					y: d,
					length: q
				})
			}
			c = f.legend || [];
			if (0 < c[I]) d += c[0], a.f.pb = new hs(d - e, a.a[R], d, a.a[C])
		};
		V.$m = function(a) {
			var b = this.h;
			this.sa[F] == Ho && h(r("Bars series with value domain axis is not supported."));
			b.Vc ? this.su(a) : this.ru(a)
		};
		V.su = function(a) {
			var b = this.h,
				c = this.D;
			this.sa.ke(b.v[I], 1);
			for (var d = 0; d < b.v[I]; d++) {
				for (var e = [], f = 0; f < this.Z[I]; f++) e[v]([0, 0]);
				for (f = 0; f < b.e[I]; f++) {
					var g = b.e[f],
						i = g.c,
						j = g.Ja,
						m = this.Z[j];
					if (g[F] == a) {
						var o = c[H](d, g.w[A][0]),
							o = m.j.U(o);
						if (ip(o)) i[v](l);
						else {
							var q = 0 < o ? 0 : 1,
								j = e[j];
							m.Y(j[q] + o);
							m = {
								hb: {
									Bd: d,
									de: 0,
									pg: j[q],
									Eh: j[q] + o,
									rg: this.Qh(g, d, j[q], k)
								}
							};
							if (g[F] == hn) {
								var u = i[I];
								m.hb.Aj = 0 == u || !i[u - 1] ? l : i[u - 1].hb.Eh
							}
							this.of(m, g, d);
							i[v](m);
							j[q] += o
						}
					}
				}
			}
		};
		V.ru = function(a) {
			var b = this.h,
				c = this.D,
				d = this.sa,
				e = Np(b.e, function(b) {
					return b[F] == a
				});
			d.ke(b.v[I], 1);
			Mp(b.v, function(a, b) {
				Mp(e, function(a, e) {
					var f = this.Z[a.Ja],
						o = a.w[A][0],
						q = c[H](b, o),
						u = f.j,
						q = u.U(q);
					if (ip(q)) a.c[v](l);
					else {
						f.Y(q);
						d.ke(0, e + 1);
						f = {
							hb: {
								Bd: b,
								de: e,
								pg: l,
								Eh: q,
								rg: this.Qh(a, b, 0, k)
							}
						};
						if (a[F] == hn) f.hb.Aj = 0 == b ? l : u.U(c[H](b - 1, o));
						this.of(f, a, b);
						a.c[v](f)
					}
				}, this)
			}, this);
			Mp(this.Z, function(a) {
				a.Wm()
			})
		};
		V.kr = function() {
			var a = this.h,
				b = this.D,
				c = this.sa,
				d = Np(a.e, function(a) {
					return a[F] == wh
				});
			c.ke(a.v[I], 1);
			Mp(a.v, function(a, f) {
				Mp(d, function(a, d) {
					var e = a.w[A],
						m = this.Z[a.Ja];
					c.ke(0, d + 1);
					var o = b[H](f, e[0]),
						q = b[H](f, e[1]),
						u = b[H](f, e[2]),
						e = b[H](f, e[3]),
						o = m.j.U(o),
						q = m.j.U(q),
						u = m.j.U(u),
						e = m.j.U(e);
					if (ip(o) || ip(e) || ip(q) || ip(u)) a.c[v](l);
					else {
						var y = u < q;
						m.Y(o);
						m.Y(e);
						m = {
							dm: this.xr(a[tb][tb], y),
							Ha: yt(a[tb][tb]),
							hb: {
								Bd: f,
								de: d,
								er: o,
								lineTo: e,
								fr: y ? u : q,
								gr: y ? q : u,
								dr: y
							}
						};
						this.of(m, a, f);
						a.c[v](m)
					}
				}, this)
			}, this);
			Mp(this.Z,
				function(a) {
					a.Wm()
				})
		};
		V.mr = function() {
			var a = this.h,
				b = this.D,
				c = this.sa;
			c[F] != Ho && c.ke(a.v[I], 1);
			for (var d = 0; d < a.v[I]; d++)
				for (var e = 0; e < a.e[I]; e++) {
					var f = a.e[e],
						g = this.Z[f.Ja];
					if (f[F] == Ak) {
						var i = b[H](d, f.w[A][0]),
							i = g.j.U(i);
						if (W(i)) {
							var j, m;
							c[F] == Ho ? (j = b[H](d, 0), j = c.j.U(j), c.Y(j), m = c.wd(j)) : (j = d, m =
								k);
							m && g.Y(i);
							g = this.Qh(f, d, 0, m);
							g = {
								hb: {
									Bd: d,
									de: 0,
									Wb: j,
									nf: i,
									rg: g
								},
								Bm: m
							};
							this.of(g, f, d);
							f.c[v](g)
						} else f.c[v](l)
					}
				}
			this.Uj()
		};
		V.ir = function() {
			var a = this.h,
				b = this.D,
				c = this.sa;
			c[F] != Ho && c.ke(a.v[I], 1);
			for (var d = 0; d < a.v[I]; d++)
				for (var e = gq(0, this.Z[I]), f = Yp(e), g = Yp(e), i = 0; i < a.e[I]; i++) {
					var j = a.e[i];
					if (j[F] == Cg) {
						var m = j.Ja,
							o = this.Z[m],
							q = l,
							u = l,
							y = j.w[A][0],
							D = b[H](d, y),
							D = o.j.U(D);
						if (W(D)) {
							var Y, L, X;
							a.Vc ? (Y = D + g[m], q = f[m], u = e[m], L = f[m] + D, X = e[m] + D, d == b[dc]
								() - 1 || !ip(b[H](d + 1, y)) ? f[m] += D : L = f[m], 0 == d || !ip(b[H]
									(d - 1, y)) ? e[m] += D : X = e[m]) : (Y = D, L = d == b[dc]() -
								1 || !ip(b[H](d + 1, y)) ? Y : l, X = 0 == d || !ip(b[H](d - 1, y)) ?
								Y : l);
							var G;
							c[F] == Ho ? (y = b[H](d, 0),
								G = c.j.U(y), c.Y(G), y = c.wd(G)) : (G = d, y = k);
							y && o.Y(Y);
							o = this.Qh(j, d, g[m], y);
							a.Vc && (g[m] = Y);
							m = {
								Wb: G,
								nf: Y,
								Bd: d,
								de: 0,
								Fm: G,
								Rj: X,
								Em: G,
								Qj: L,
								Dm: G,
								Pj: q,
								Cm: G,
								Oj: u,
								rg: o
							}
						} else a.Vc && (q = f[m], u = e[m]), m = {
							Dm: d,
							Pj: q,
							Cm: d,
							Oj: u,
							Fm: d,
							Rj: u,
							Em: d,
							Qj: q
						}, y = n;
						m = {
							hb: m,
							Bm: y
						};
						this.of(m, j, d);
						if (!W(D)) m.ud = k;
						j.c[v](m)
					}
				}
			this.Uj()
		};
		V.nr = function() {
			for (var a = this.h, b = this.D, c = this.Ma[0], d = this.La[0], e = 0; e < b[dc](); e++)
				for (var f = 0; f < a.e[I]; f++) {
					var g = a.e[f],
						i = g.Ad;
					if (g[F] == rm) {
						var j = g.w[A][0],
							i = b[H](e, a.Zc[i].w[wb][0]),
							m = b[H](e, j),
							j = this.Ma[0].j.U(i),
							i = this.La[0].j.U(m);
						if (!ip(j) && !ip(i)) {
							if (m = c.wd(j) && d.wd(i)) c.Y(j), d.Y(i);
							j = {
								hb: {
									x: j,
									y: i
								},
								Yq: m
							};
							this.of(j, g, e);
							g.c[v](j)
						} else g.c[v](l)
					}
				}
			this.Uj()
		};
		V.Uj = function() {
			function a(a) {
				return {
					Hg: W(a.Hg) ? a.Hg : 1,
					ve: W(a.ve) ? a.ve : 1,
					scope: W(a[uc]) ? a[uc] : k
				}
			}

			function b(a) {
				return a && !a.ud
			}
			for (var c = 0; c < this.h.e[I]; c++) {
				var d = this.h.e[c],
					e = d.w.emphasis || [],
					f = d.w[uc] || [];
				if (!(0 == (d.w.certainty || [])[I] && 0 == e[I] && 0 == f[I])) {
					e = Up(d.c, b);
					e = a(e || {});
					for (f = 0; f < d.c[I]; f++) {
						var g = d.c[f];
						if (b(g)) {
							var i = a(g),
								j = d.Ha;
							if (1 > i.Hg || 1 > e.Hg) j = this.rk(j, n), g.Eg = j;
							if (1 != i.ve && 1 != e.ve) {
								var m = s.min(e.ve, i.ve),
									j = this.zs(j, m);
								g.Eg = j
							}
							if (!i[uc] && !e[uc]) j = j.$h(), g.Eg = j;
							e = i
						}
					}
				}
			}
		};
		V.of = function(a, b, c) {
			a.Xf = this.ik(b, c);
			var d = this.Ct(b, c),
				e = this.Dt(b, c),
				c = this.Et(b, c),
				f = b.Hm,
				g = tv(a, b);
			if (!c) a.scope = c, f = f.$h(), a.b = f;
			if (1 != e && (a.ve = e, b[F] == Ak || b[F] == Cg || b[F] == rm)) g = s[z](10 * g * s[Ib](e)) /
				10, a.Xb = g;
			if (1 > d) switch (a.Hg = d, b[F]) {
				case Ak:
				case Cg:
				case rm:
					a.b = this.rk(f, k);
					a.Xb = s.max(g - a.b.wo() / 2, 0);
					break;
				case Pg:
				case hn:
					a.b = this.rk(f, n)
			}
		};
		V.ik = function(a, b) {
			if (a.w.tooltip) return {
				content: Op(a.w.tooltip, function(a) {
					return this.D[Xc](b, a)
				}, this)[cd](gd)
			};
			switch (this.h.N) {
				case rm:
					return this.vt(a, b);
				case T:
					return this.ut(a, b)
			}
		};
		V.vt = function(a, b) {
			var c = this.D,
				d = a.w[A][0];
			return {
				lf: a[J],
				content: c[Xc](b, this.h.Zc[a.Ad].w[wb][0]) + ld + c[Xc](b, d)
			}
		};
		V.ut = function(a, b) {
			var c = this.D,
				d = this.h.v[b],
				e = a.w[A];
			if (a[F] == wh) e = c[Xc](b, e[0]) + kd + c[Xc](b, e[3]) + ie + c[Xc](b, e[1]) + kd + c[Xc](b,
				e[2]);
			else {
				var e = this.D[Xc](b, e[0]),
					f = a.w.interval || [];
				f[I] && (f = Op(f, function(a) {
					return c[Xc](b, a)
				}), e += md + f[cd](ie) + hg)
			}
			return {
				Hk: d.dj[a.Ad],
				lf: a[J],
				content: e
			}
		};
		V.an = function() {
			function a(a) {
				return {
					Wb: a.x,
					nf: a.y
				}
			}

			function b(a) {
				return new wr(a.Wb, a.nf)
			}

			function c(a) {
				return {
					x: a.x,
					y: a.y
				}
			}

			function d(a) {
				return new wr(a.x, a.y)
			}
			var e = this.h,
				f = this.sa,
				g = Z(function(a, b, c) {
					b.Yq && (this.Ma[0].Y(c.x), this.La[0].Y(c.y))
				}, this),
				i = Z(function(a, b, c) {
					f.Y(c.Wb);
					b.Bm && this.Z[a.Ja].Y(c.nf)
				}, this),
				j, m, o;
			switch (e.N) {
				case rm:
					j = d;
					m = c;
					o = g;
					break;
				case T:
					j = b, m = a, o = i
			}
			for (g = 0; g < e.e[I]; g++)
				if (i = e.e[g], i[F] == rm || i[F] == Ak)
					if (0 <= Lp([T, Cl, Wh], i.Ze)) {
						var q = i[F] == rm && i.Ze == Wh,
							u = i.Ze == T;
						i.ek =
							k;
						i.wr = q;
						q = Qu(Op(i.c, function(a) {
							return W(a) ? j(a.hb) : l
						}), i.ij, u, q, e.Qe);
						for (u = 0; u < i.c[I]; ++u) {
							var y = i.c[u];
							if (q[u]) {
								var D = m(q[u][0]),
									Y = m(q[u][1]);
								y.Qm = D;
								y.Rm = Y;
								o(i, y, D);
								o(i, y, Y)
							}
						}
					} else i.ek = n
		};
		V.lr = function() {
			if (this.h.jc == xh) {
				for (var a = this.h.v, b = this.sa, c = b.sb, d = b.ob, e, f, g = 0; g < a[I]; g++)
					if (f = this.oo(g), W(f)) {
						if (b.po(f)) return;
						if (!b.kt(f)) {
							e = g;
							break
						}
					} if (hp(e))
					for (var i, g = e; g < a[I]; g++) {
						e = c;
						if (g == a[I] - 1) {
							this.Tk(g, e, d);
							break
						}
						i = this.oo(g + 1);
						if (W(i)) {
							if (b.po(i)) {
								this.Tk(g, e, d);
								break
							}
							c = ur(f, i);
							this.Tk(g, e, c);
							f = i
						}
					}
			}
		};
		V.oo = function(a) {
			var b = this.h.v,
				c = this.sa;
			return c[F] == Ho ? !W(b[a][A]) ? l : c.Tm(b[a][A]) : c.Aa(a)
		};
		V.Tk = function(a, b, c) {
			var d = this.h.a.top,
				e = this.h.a[P],
				f = this.h.a[C],
				g = this.h.a[R],
				i = this.sa[Wa];
			this.h.v[a].Ls = this.h[Qb] == Gj ? 1 == i ? new hs(d, c, e, b) : new hs(d, b, e, c) : 1 == i ?
				new hs(b, g, c, f) : new hs(c, g, b, f)
		};
		V.ur = function() {
			this.ex();
			this.fx()
		};
		V.ex = function() {
			for (var a = this.h, b = 0; b < a.Ka[I]; ++b) this.al(this.La[b], a.Ka[b], this.Bt);
			for (b = 0; b < a.ta[I]; ++b) this.al(this.Ma[b], a.ta[b], this.At)
		};
		V.fx = function() {
			for (var a = this.h, b = 0; b < a.ta[I]; ++b) this.al(this.Ma[b], a.ta[b], this.cu)
		};
		V.al = function(a, b, c) {
			b[x] && pa(b, Np(b[x], Z(c, this, a)))
		};
		V.At = function(a, b) {
			var c = this.h,
				d = b.o;
			if (d.kf) return k;
			d = nu(d);
			return !d ? k : a.ic == Pj && !(new hs(c.a.top, c.a[R], c.a[P], c.a[C]))[Tc](d) ? n : k
		};
		V.cu = function(a, b) {
			var c = this.h;
			if (a.ic != Pj) return k;
			var d = b.o;
			if (d.kf) return k;
			var e = nu(d);
			if (!e) return k;
			for (var d = d.t[M] / 2, f = new hs(e.top, e[R] + d, e[P], e[C] - d), g = 0; g < c.Ka[I]; ++g)
				if (this.La[g].ic == Pj && !(1 > (c.Ka[0][x] ? c.Ka[0][x][I] : 0))) {
					var i = nu(c.Ka[g][x][0].o),
						j = nu(Jp(c.Ka[g][x]).o);
					if (i || j) {
						if (i && is(f, i) || j && is(f, j)) return n;
						var m;
						i ? j ? (m = s.min(i[C], j[C]), i = s.max(i[R], j[R])) : (m = i[C], i = i[R]) : (m =
							j[C], i = j[R]);
						if (s.abs(e[C] - m < d) || s.abs(e[R] - i < d)) return n
					}
				} return k
		};
		V.Bt = function(a, b) {
			var c = this.h,
				d = new hs(c.a.top, c.a[R], c.a[P], c.a[C]),
				e = b.o,
				f = e.t[M] / 2,
				e = nu(e);
			if (!e) return k;
			if (a.ic == Pj && !d[Tc](e)) return n;
			d = new hs(e.top, e[R] + f, e[P], e[C] - f);
			if ((f = nu(c[J])) && is(d, f)) return n;
			return (f = c.cg ? nu(c.cg) : l) && is(d, f) ? n : (c = c.f.pb) && is(d, c) ? n : k
		};
		V.sr = function() {
			var a = this.D,
				b = this.h,
				c = this.sa;
			Mp(this.h.v, function(d, e) {
				var f = [],
					g = [];
				Mp(b.Zc, function(a) {
					a = this.Jm(e, a.w);
					Zp(f, a.Mj);
					Zp(g, a.tb)
				}, this);
				if (f[I] || g[I]) {
					var i;
					c[F] == Ho ? (i = a[H](e, 0), i = c.j.U(i)) : i = e;
					i = c.Aa(i);
					var j = b.a.top + b.a[Q],
						m = this.h.Dq;
					if (f[I]) {
						var o = this.$j(f);
						d.Ue = this.Km(i, j, o, m, 5)
					}
					if (g[I]) o = this.$j(g), d.Ue = this.Uq(i, j, o, m)
				}
			}, this);
			Mp(this.h.e, function(a) {
				if (a[F] == Cg || a[F] == Ak)
					for (var b = 0; b < a.c[I]; ++b)
						if (W(a.c[b])) {
							var c = this.Jm(b, a.w).Mj;
							if (c[I]) {
								var g = a.c[b].i,
									i = sq(this.h.Cq);
								va(i, hx(i[tb], a[tb]));
								c = this.$j(c);
								a.c[b].Ue = this.Km(g.x, g.y, c, i, 12)
							}
						}
			}, this)
		};
		V.Jm = function(a, b) {
			var c = this.D,
				d = b.annotation,
				e = {
					tb: [],
					Mj: []
				};
			if (!W(d)) return e;
			for (var f = b.annotationText || [], g = 0; g < d[I]; ++g) {
				var i = d[g],
					j = i + 1,
					m = 0 <= Lp(f, j);
				c[H](a, i) && (j = m ? c[Xc](a, j) : S, j = {
						te: c[Xc](a, i),
						Ag: j || l
					}, m = [], m[v](sg + i + te), m[v](yg), this.k.hi(m) == Ak ? e.tb[v](j) : e.Mj[v](
					j))
			}
			return e
		};
		V.$j = function(a) {
			for (var b = [], c = [], d = 0; d < a[I]; ++d) b[v](a[d].te), a[d].Ag && c[v](a[d].Ag);
			return {
				te: b[cd](ie),
				Ag: c[cd](he)
			}
		};
		V.Km = function(a, b, c, d, e) {
			var f = this.ra(c.te, d);
			return {
				Ym: {
					x: a,
					y: b,
					orientation: Ko,
					length: -e
				},
				label: {
					text: c.te,
					t: d,
					d: [{
						x: a,
						y: b - e,
						length: f[w],
						text: c.te
					}],
					Za: Eh,
					Pa: Ni,
					K: c.Ag
				}
			}
		};
		V.Uq = function(a, b, c, d) {
			var e = Iu(this.h.tc, c.te, d, this.h.a[Q] - d[M]);
			return {
				Ym: {
					x: a,
					y: b,
					orientation: Ko,
					length: -this.h.a[Q]
				},
				label: {
					text: c,
					t: d,
					d: [{
						x: a + 2,
						y: b - this.h.a[Q] / 2,
						length: e.Yb,
						text: e.d[0]
					}],
					Za: Eh,
					Pa: fn,
					K: c.Ag || (e.aa ? c.te : S),
					kf: 270
				}
			}
		};
		V.tr = function() {
			Mp(this.h.e, function(a) {
				var b = this.es(a);
				a.c && Mp(a.c, function(a) {
					if (W(a)) {
						a.i = b(a.hb);
						if (W(a.Qm)) a.ld = b(a.Qm);
						if (W(a.Rm)) a.md = b(a.Rm)
					}
				});
				a.hc && (0 < a.hc.d[I] || 0 < a.hc[$c][I]) && this.fs(a)
			}, this)
		};
		V.fs = function(a) {
			function b(b) {
				var c = e[b];
				delete e[b];
				if (c && 1 < c.tb[I]) {
					c[P] && c[P].reverse();
					if (f[b].Ze != U) {
						var d = f[b].Ze == T,
							b = f[b].ij;
						c.mm = Qu(c.tb, b, d, n, n);
						if (c[P]) c.Qr = Qu(c[P], b, d, n, n)
					}
					a.hc.fk[v](c)
				}
			}

			function c(a, b) {
				if (!e[a]) {
					var c = f[a].b[Dc](),
						d = f[a][zc],
						g = {};
					g.ig = a;
					g.tb = [];
					d == Cg ? (c.ee(0), Ra(g, [])) : c.dk(0);
					g.b = c;
					e[a] = g
				}
				e[a].tb[v](new wr(b[C], b.top));
				e[a][P] && e[a][P][v](new wr(b[C] + b[w], b.top + b[Q]))
			}

			function d(a) {
				a = f[a][zc];
				return a == Cg || a == Ak
			}
			var e = {},
				f = a.hc.jg;
			a.hc.fk = [];
			for (var g = 0; g < a.c[I]; g++) {
				var i = {},
					j = a.c[g];
				if (j && j.i && j.i.Wc)
					for (var j = j.i.Wc, m = 0; m < j[I]; ++m) {
						var o = j[m].ig;
						d(o) && (i[o] = k, c(o, j[m][vc]))
					}
				for (o in e) !i[o] && !f[o].Qe && b(o)
			}
			for (o in e) b(o)
		};
		V.es = function(a) {
			switch (a[F]) {
				case rm:
					return Z(this.Fw, this, a);
				case sh:
					return Z(this.Cw, this, a);
				case Ak:
					return Z(this.Ew, this, a);
				case Pg:
					return Z(this.Bw, this, a);
				case hn:
					return Z(this.Gw, this, a);
				case wh:
					return Z(this.Dw, this, a);
				case Cg:
					return Z(this.Aw, this, a)
			}
			return l
		};
		V.Fw = function(a, b) {
			return {
				x: this.Ma[0].Aa(b.x),
				y: this.La[0].Aa(b.y)
			}
		};
		V.Cw = function(a, b) {
			return this.Oh.Tv(this.Ma[0], this.La[0], b)
		};
		V.Ew = function(a, b) {
			var c = this.Bf(a.Ja, b.Wb, b.nf);
			c.Wc = this.ci(a, b);
			return c
		};
		V.Bw = function(a, b) {
			var c = this.Dl(a, b, b.pg, b.Eh);
			return !c ? l : {
				top: c.top,
				left: c[C],
				width: c[w],
				height: c[Q],
				Wc: this.ci(a, b)
			}
		};
		V.Dw = function(a, b) {
			var c = this.Dl(a, b, b.fr, b.gr),
				d = this.Dl(a, b, b.er, b.lineTo);
			oa(d, 2);
			xa(d, d[C] + (c[w] - (c[w] % 2 ? 3 : 2)) / 2);
			b.dr && (Ua(c, c[Q] - 2), oa(c, c[w] - 2), xa(c, c[C] + 1), c.top += 1);
			Ua(c, s.max(c[Q], 2));
			oa(c, s.max(c[w], 1));
			return {
				rect: c,
				tb: d
			}
		};
		V.Gw = function(a, b) {
			var c = this.Z[a.Ja];
			if (!W(b.pg)) b.pg = c.j.U(c.V.fa);
			var d = this.sa,
				e = d.r[b.Bd].u,
				f = d.Yf,
				g = s[B](e - d[Wa] * f / 2),
				f = s[B](e + d[Wa] * f / 2),
				i = c.Aa(b.Eh),
				d = this.nd(g, c.Aa(b.pg)),
				e = this.nd(g, i),
				f = this.nd(f, i),
				i = [];
			this.k.za(hi, k) && W(b.Aj) && (c = this.nd(g, c.Aa(b.Aj)), i[v](c));
			i[v](e);
			i[v](f);
			return {
				Wf: new js(s.min(d.x, f.x), s.min(d.y, f.y), s.abs(f.x - d.x), s.abs(f.y - d.y)),
				outline: i,
				Wc: this.ci(a, b)
			}
		};
		V.Os = function(a, b, c) {
			return s.min(a.Aa(b), a.Aa(c))
		};
		V.Ns = function(a, b, c) {
			return s.max(a.Aa(b), a.Aa(c))
		};
		V.Dl = function(a, b, c, d) {
			var e = this.sa,
				f = this.Z[a.Ja];
			W(c) || (c = f.j.U(f.V.fa));
			if (b.de > e.$e || b.Bd >= e.r[I]) return l;
			a = this.Os(f, c, d);
			c = this.Ns(f, c, d);
			d = s.min(1, 0.2 * (c - a));
			s[B](a + d) < s[B](c) && s[B](a + d) > s[B](a) ? (a = s[B](a + d), c = s[B](c)) : a += d;
			b = this.Rn(b);
			d = e.Xe / 2;
			e = s[B](b + d);
			a = this.nd(s[B](b - d), a);
			e = this.nd(e, c);
			return new js(s.min(a.x, e.x), s.min(a.y, e.y), s.abs(e.x - a.x), s.abs(e.y - a.y))
		};
		V.Aw = function(a, b) {
			var c = this.Z[a.Ja],
				d = c.j.U(c.V.fa),
				c = this.Bf(a.Ja, b.Wb, b.nf),
				e = this.Bf(a.Ja, b.Cm, W(b.Oj) ? b.Oj : d),
				f = this.Bf(a.Ja, b.Dm, W(b.Pj) ? b.Pj : d),
				g = this.Bf(a.Ja, b.Em, W(b.Qj) ? b.Qj : d),
				d = this.Bf(a.Ja, b.Fm, W(b.Rj) ? b.Rj : d),
				i = this.ci(a, b);
			return {
				x: c.x,
				y: c.y,
				Fj: e.x,
				Gj: e.y,
				Hj: f.x,
				Ij: f.y,
				Hh: g.x,
				Ih: g.y,
				Jh: d.x,
				Kh: d.y,
				Wc: i
			}
		};
		V.ci = function(a, b) {
			if (!b.rg) return [];
			var c = this.sa,
				d = this.Z[a.Ja];
			if (c[F] != Ho && (b.de > c.$e || b.Bd >= c.r[I])) return [];
			for (var e = this.Rn(b), f = [], g = 0, i; i = b.rg[g]; g++) {
				var j = d.Aa(i.Ar),
					m = d.Aa(i.Br),
					o = (c[F] == Ho ? c.r && 1 < c.r[I] ? c.r[1].u - c.r[0].u : 0 : c.Xe) * i.Cr,
					q = s.abs(j - m),
					m = this.nd(e - o / 2, s.min(m, j)),
					j = m.x,
					m = m.y,
					o = this.nd(o, q);
				f[v]({
					rect: new js(j, m, o.x, o.y),
					ig: i.ig
				})
			}
			return f
		};
		V.Rn = function(a) {
			var b = this.sa;
			return b[F] == Ho ? b.Aa(a.Wb) : b.r[a.Bd].u - b.hm + (b.Xe + 1) * a.de + b.Xe / 2
		};

		function hx(a, b) {
			switch (a) {
				case Am:
					return b.wf;
				case Bm:
					return b.si;
				case zm:
					return b[tb];
				default:
					return a
			}
		}
		V.nd = function(a, b) {
			switch (this.h[Qb]) {
				case Gj:
					return {
						x: a, y: b
					};
				case Ko:
					return {
						x: b, y: a
					}
			}
			h(r("Invalid orientation."))
		};
		V.Bf = function(a, b, c) {
			return this.nd(this.sa.Aa(b), this.Z[a].Aa(c))
		};
		V.xr = function(a, b) {
			return b ? zt(a, 2, k) : yt(a)
		};
		V.rk = function(a, b) {
			var c = a[Dc]();
			c.Qg() && c.O != Ud ? (c.Kk(new vt(Tl, c.O)), !c.pd() && b && (c.gc(c.O), c.ee(1))) : c.pd() &&
				c.co(oi);
			return c
		};
		V.zs = function(a, b) {
			var c = a[Dc]();
			c.ee(c.H * b);
			return c
		};
		V.Ct = function(a, b) {
			var c = this.D,
				d = a.w.certainty || [];
			if (d[I]) {
				var e = c[H](b, d[0]);
				if (W(e)) return c[Fb](d[0]) == Yg ? e ? 1 : 0 : e
			}
			return 1
		};
		V.Et = function(a, b) {
			var c = this.D,
				d = a.w[uc] || [];
			return d[I] && (c = c[H](b, d[0]), W(c)) ? !!c : k
		};
		V.Dt = function(a, b) {
			var c = this.D,
				d = a.w.emphasis || [];
			if (d[I]) {
				var e = c[H](b, d[0]);
				if (W(e)) return c[Fb](d[0]) == Yg ? e ? 2 : 1 : e
			}
			return 1
		};
		V.Qh = function(a, b, c, d) {
			function e(a, e, f) {
				var m = g.j.U(i[H](b, a)),
					e = g.j.U(i[H](b, e));
				W(m) && W(e) && (m += c, e += c, d && (g.Y(m), g.Y(e)), j[v]({
					Br: m,
					Ar: e,
					Cr: f,
					ig: a
				}))
			}
			var f = a.hc;
			if (!f) return l;
			for (var g = this.Z[a.Ja], i = this.D, j = [], a = 0; a < f.qe[I]; a += 2) e(f.qe[a], f.qe[a +
				1], 0);
			for (var m = 0, o = f.Xh[I] - 1; m <= o; m++, o--) {
				var a = f.Xh[m],
					q = f.Xh[o];
				e(a, q, f.jg[a].$q)
			}
			for (q = 0; q < f.c[I]; q++) a = f.c[q], e(a, a, 0);
			for (q = 0; q < f.Jd[I]; q++) a = f.Jd[q], m = f.jg[a], e(a, a, 0 == q || q == f.Jd[I] - 1 ? m
				.Zq : m.ar);
			m = 0;
			for (o = f[$c][I] - 1; m <= o; m++, o--) a = f[$c][m],
				q = f[$c][o], e(a, q, 0);
			for (q = 0; q < f.d[I]; q++) a = f.d[q], e(a, a, 0);
			return j[I] ? j : l
		};

		function ix(a, b, c) {
			this.Fl = a;
			this.Fg = b;
			this.wg = a - b / 2;
			this.Vq = c;
			La(this, 0)
		}
		ix[K].Op = function(a) {
			this.wg = a
		};
		ix[K].Zw = function() {
			return this.wg + this.Fg
		};
		ix[K].Sf = function() {
			return this.Fg
		};

		function jx(a, b) {
			this.Nl = a;
			this.Le = b;
			for (var c = 0, d = b[I]; c < d; c++) La(b[c], c)
		}
		V = jx[K];
		V.Wq = function() {
			for (var a = 0, b = 0, c = this.Le[I]; b < c; b++) a += this.Le[b].Sf();
			a > this.Nl && h(r("Not enough space for labels. Need: " + a + " got: " + this.Nl));
			this.Le.sort(function(a, b) {
				var c = a.Fl,
					d = b.Fl;
				return c == d ? a[ic] > b[ic] : c > d ? 1 : -1
			});
			b = 0;
			for (c = this.Le[I]; b < c; b++) {
				var a = this.Le[b],
					d = this.Np(a.wg, a.Sf());
				a.Op(d)
			}
			b = [];
			a = 0;
			for (c = this.Le[I]; a < c; a++) b[v]([this.Le[a]]);
			for (; this.Yv(b););
		};
		V.Yv = function(a) {
			for (var b = 0; b < a[I] - 1; b++) {
				var c = a[b],
					d = a[b + 1];
				if (this.dx(c, d)) return this.cx(c, d), a[bd](b + 1, 1), k
			}
			return n
		};
		V.dx = function(a, b) {
			return a[a[I] - 1].Zw() > b[0].wg
		};
		V.cx = function(a, b) {
			for (var c = 0; c < b[I]; c++) a[v](b[c]);
			for (var d = 0, e = 0, c = 0; c < a[I]; c++) d += a[c].Fl, e += a[c].Sf();
			d = d / a[I] - e / 2;
			d = this.Np(d, e);
			for (c = 0; c < a[I]; c++) e = a[c], e.Op(d), d += e.Sf()
		};
		V.Np = function(a, b) {
			return pr(a, 0, this.Nl - b)
		};

		function kx(a, b) {
			var c = a.f;
			this.m = c[fc];
			var d = Gj;
			if (this.m == hk || this.m == hm || this.m == gk) d = Ko;
			this.ub = d;
			this.ad = n;
			this.W = c.t;
			this.Am = b.vc(mk, this.W);
			this.ra = a.tc;
			this.h = a;
			this.ab = this.W[M];
			this.Dd = s[z](this.W[M] / (1.618 * 1.618));
			this.oa = l;
			this.yg = [];
			this.Ej = b.za(rk, k);
			this.Oq = b.ia(qk, uu, this.ub);
			this.Mq = b.zh(ok);
			this.Nq = b.zh(pk);
			this.ha = l;
			this.Yh = this.Dd;
			this.he = this.ie = this.Dj = 0;
			this.sn = this.m == io ? b.da(lk, 1) : 1;
			this.mg = 0;
			this.Zr()
		}
		V = kx[K];
		V.as = function() {
			var a = this.h.f;
			this.oa = a.pb;
			this.ub == Ko ? this.Is(k) : this.m == io ? this.Ik(n) : this.m == jh ? this.Ik(k) : this.m ==
				Pj && this.Ik(n);
			a.ha = this.ha;
			a.kc = a.ha && 0 < a.ha[I] ? a.ha[0] : l;
			a.qg = this.ad ? this.Hs(0, n, 1 < a.ha[I]) : l
		};
		V.Zr = function() {
			this.yg = this.h.$c
		};
		V.Is = function(a) {
			var b = s.max(this.oa[R] - this.oa[C] - (this.ab + this.Dd), 0),
				c = this.oa[P] - this.oa.top,
				d = s.max(c - 2 * this.ab, 0),
				e = this.yg,
				f = this.h;
			uv(f) && e.reverse();
			var g = Op(e, function(a) {
				a = Iu(this.ra, a[x], this.W, b, p);
				if (0 == a.d[I]) a.d = [S];
				return a
			}, this);
			if (this.m == gk && f.fm == Ak) e = this.us(g, c, e), this.ha = [e];
			else if (c = this.zk(g, c), this.ad = a && this.vs(e, c))
				if (c = this.zk(g, d), !hp(c[0]) || 0 == c[0][I]) this.ad = n;
				else {
					this.ha = [];
					for (a = e; 0 < a[I];) {
						e = this.Pn(c, a);
						this.ha[v](e);
						for (e = 0; hp(c[e]) && 0 != c[e][I];) ++e;
						g = $p(g,
							e);
						c = this.zk(g, d);
						a = $p(a, e)
					}
					if (this.ad) this.Dj = s[z](this.oa[P] - this.ab), this.ie = this.oa[C], this.he = this
						.ie + this.ab + this.Yh, this.Ej && (this.he += this.wk(this.ha[I]) + this.Yh)
				}
			else e = this.Pn(c, e), this.ha = [e]
		};
		V.zk = function(a, b) {
			var c = this.W[M],
				d = s[z](c / 1.618),
				e = s[z](c / 3.236),
				c = this.hw(a, c + d, c + e);
			return Zu(c, b)
		};
		V.Xq = function(a) {
			var b = this.h.e[a].c,
				a = this.h.ta[0],
				a = a.L.jf(a.ob)[Vb](),
				b = Np(b, function(a) {
					return W(a)
				}),
				c = b[b[I] - 1];
			if (a > c.hb.Wb || 1 == b[I]) return c.i.y;
			c = b[0];
			if (a < c.hb.Wb) return c.i.y;
			var d = b[I] - 1;
			do d--; while (b[d].hb.Wb > a);
			c = b[d];
			b = b[d + 1];
			return c.i.y + (a - c.hb.Wb) / (b.hb.Wb - c.hb.Wb) * (b.i.y - c.i.y)
		};
		V.us = function(a, b, c) {
			for (var d = this.oa[R] - this.oa[C], e = s[z](this.oa[C]), f = [], g = [], i = this.h.ae == Ei,
					j = 0; j < c[I]; j++) {
				var m = c[j],
					o = Iu(this.ra, m[x], this.W, d, a[j].d[I]),
					q = {};
				q.id = m.id;
				q.b = m.b[Dc]();
				var u = sq(this.W);
				va(u, q.b.O);
				q.o = {
					text: m[x],
					t: u,
					d: [],
					Za: fn,
					Pa: fn,
					K: o.aa ? m[x] : S
				};
				u.$a && q.b.gc(u.$a, 1);
				q.B = k;
				q.z = m.z;
				for (var y = 0; y < o.d[I]; y++) q.o.d[v]({
					length: d,
					text: o.d[y]
				});
				if (i) y = this.ra(q.o.d[0][x], u)[w], q.ba = {}, q.ba.S = {
					x: e + y + 5
				}, q.ba.b = q.b, q.ba.B = n;
				La(q, m[ic]);
				y = this.Xq(q[ic]);
				u = this.ra(q.o.d[0], u)[Q];
				u *= q.o.d[I];
				m = new ix(y, u, q);
				f[v](m);
				g[v](q)
			}(new jx(b, f)).Wq();
			for (y = 0; y < f[I]; y++) {
				m = f[y];
				a = m.wg;
				q = m.Vq;
				b = q.o.d;
				for (j = 0; j < b[I]; j++)
					if (b[j].y = s[z](j * u + a), b[j].x = e, i) q.ba.S.y = b[j].y
			}
			return g
		};
		V.Pn = function(a, b) {
			for (var c = this.ab + this.Dd, d = this.oa[R] - this.oa[C] - c, e = this.W[M], f = s[z](e /
						1.618), g = s[z](e / 3.236), f = e + f, e = e + g, g = [], i = s[z](this.oa.top),
					j = s[z](this.oa[C]), m = 0; m < b[I]; m++) {
				var o = b[m],
					q = a[m][I];
				if (0 != q) {
					var q = Iu(this.ra, o[x], this.W, d, q),
						u = {};
					u.id = o.id;
					u.o = {
						text: o[x],
						t: this.W,
						d: [],
						Za: fn,
						Pa: fn,
						K: q.aa ? o[x] : S
					};
					u.P = {};
					u.P.S = new js(j, i, this.ab, this.ab);
					u.P.b = o.b[Dc]();
					this.W.$a && u.P.b.gc(this.W.$a, 1);
					var y = j + c;
					u.B = k;
					u.z = o.z;
					for (var D = 0; D < q.d[I]; D++) 0 < D && (i += e), u.o.d[v]({
						x: y,
						y: i,
						length: d,
						text: q.d[D]
					});
					La(u, o[ic]);
					i += f;
					g[v](u)
				}
			}
			return g
		};
		V.hw = function(a, b, c) {
			for (var d = Pp(a, function(a, b) {
					return s.max(a, b.d[I])
				}, 0), e = [], f = 0; f < d; f++) {
				var g = 0 == f ? b : c;
				Mp(a, function(a, b) {
					f < a.d[I] && e[v]({
						key: b,
						min: 0 == f && 0 == b ? this.W[M] : g,
						T: []
					})
				}, this)
			}
			return e
		};
		V.vs = function(a, b) {
			var c = a[I] - 1;
			return 1 < a[I] && 1 > b[c][I]
		};
		V.Vr = function(a) {
			for (var b = this.yg, c = this.Zg(b, a), d = 1;
				(0 == this.sn || this.sn > d) && c[I] < b[I];) ++d, b = $p(b, c[I]), c = this.Zg(b, a);
			return d
		};
		V.Ik = function(a) {
			for (var b = [1, 9, 99, 0], c = 0; c < b[I] && !this.tu(b[c], a); ++c);
			if (this.ad) this.Dj = s[z]((this.oa.top + this.oa[P] - this.ab) / 2), this.he = this.oa[R] -
				this.ab, this.ie = this.he - this.Yh - this.ab, this.Ej && (this.ie -= this.wk(this.ha[I]) +
					this.Yh)
		};
		V.tu = function(a, b) {
			var c = this.oa[R] - this.oa[C],
				d = b;
			1 != a && (c -= 2 * (this.ab + this.Dd), d = n, 0 != a && (c -= this.wk(a) + this.Dd));
			var e = this.Zg(this.yg, c);
			if (0 == e[I]) return this.ad = n, k;
			this.ha = [];
			for (var f = this.yg; 0 < f[I];) {
				if (0 < a && this.ha[I] == a) return n;
				for (var g = [this.Ko(e, f, d)], i = 1; i < this.mg && !(f[I] == e[I]); i++) f = $p(f, e[
					I]), e = this.Zg(f, c), g[v](this.Ko(e, f, d));
				this.ha[v](this.qu(g));
				f = $p(f, e[I]);
				e = this.Zg(f, c)
			}
			this.ad = 1 < this.ha[I];
			return k
		};
		V.qu = function(a) {
			var b = this.oa.top,
				c = this.oa[P] - b,
				d = this.W[M],
				e = c - this.mg * d,
				f = 1 < this.mg ? e / (this.mg - 1) : 0,
				g = b + (c - ((d + f) * a[I] - f)) / 2,
				i = [];
			Mp(a, function(a) {
				var b = s[z](g);
				Mp(a, function(a) {
					a.o.d[0].y = b;
					a.P.S.top = b
				});
				g += d + f;
				Zp(i, a)
			});
			return i
		};
		V.Zg = function(a, b) {
			var c = this.ab + this.Dd,
				d = s.min(this.h[w] * (2 - 1.618) / 2, b);
			if (d < c) return [];
			c = this.wu(d, a);
			return Yu(c, b)
		};
		V.Ko = function(a, b, c) {
			for (var d = this.oa[R] - this.oa[C], e = this.ab + this.Dd, f = s[z](1.618 * this.W[M]),
				g = [], i = 0, j = s[z](this.oa.top), m = 0; m < a[I]; m++) {
				var o = b[m],
					q = Iu(this.ra, o[x], this.W, a[m] - e - (0 < m ? f : 0), 1),
					u = 0 < q.d[I] ? q.d[0] : S,
					y = this.ra(u, this.W)[w],
					D = {};
				D.id = o.id;
				D.o = {
					text: o[x],
					t: this.W,
					d: [{
						x: i + e,
						y: j,
						length: y,
						text: u
					}],
					Za: fn,
					Pa: fn,
					K: q.aa ? o[x] : S
				};
				D.B = k;
				D.z = o.z;
				D.P = {};
				D.P.b = o.b[Dc]();
				this.W.$a && D.P.b.gc(this.W.$a, 1);
				D.P.S = new js(i, j, this.ab, this.ab);
				La(D, o[ic]);
				g[v](D);
				i += y + e + f
			}
			a = this.oa[C];
			!this.ad && c && (a += s[B]((d -
				(i - f)) / 2));
			for (m = 0; m < g[I]; m++) {
				D = g[m];
				xa(D.P.S, D.P.S[C] + a);
				for (c = 0; c < D.o.d[I]; c++) D.o.d[c].x += a
			}
			return g
		};
		V.wu = function(a, b) {
			var c = this.ab + this.Dd,
				d = s[z](1.618 * this.W[M]);
			return Op(b, function(b, f) {
				var g = this.ra(b[x], this.W)[w] + c,
					i = s.min(a, g),
					g = g - i;
				0 < f && (i += d);
				return {
					min: i,
					T: [g]
				}
			}, this)
		};
		V.wk = function(a) {
			for (var b = Ae; 10 <= a;) b += Ae, a /= 10;
			return this.ra(b + xe + b, this.Am)[w]
		};
		V.Hs = function(a, b, c) {
			var d = this.Dj,
				e = l;
			if (this.Ej) var e = a + 1 + xe + this.ha[I],
				a = this.ie + this.ab,
				f = this.he - a,
				e = {
					text: e,
					t: this.Am,
					d: [{
						x: a + f / 2,
						y: d,
						text: e,
						length: f
					}],
					Za: Eh,
					Pa: fn,
					K: S
				};
			var g = this.Oq == Ko,
				i = this.ab,
				j = s[z](i / 2),
				m = this.ie,
				o = this.he,
				f = a = l;
			g ? (a = [{
				x: m + i,
				y: d + i
			}, {
				x: m + j,
				y: d
			}, {
				x: m,
				y: d + i
			}], f = [{
				x: o,
				y: d
			}, {
				x: o + i,
				y: d
			}, {
				x: o + j,
				y: d + i
			}]) : (a = [{
				x: m + i,
				y: d + i
			}, {
				x: m + i,
				y: d
			}, {
				x: m,
				y: d + j
			}], f = [{
				x: o,
				y: d
			}, {
				x: o + i,
				y: d + j
			}, {
				x: o,
				y: d + i
			}]);
			d = {
				fd: this.Mq,
				ei: this.Nq
			};
			return {
				ok: {
					path: a,
					fd: b,
					cd: d,
					b: b ? d.fd : d.ei
				},
				mk: {
					path: f,
					fd: c,
					cd: d,
					b: c ? d.fd : d.ei
				},
				nk: e
			}
		};

		function lx(a, b, c, d, e) {
			var f = a[R] - a[C],
				g = sq(d);
			va(g, Te);
			var i = sq(d);
			va(i, Xe);
			var d = d[M] / 3.236,
				j = g[M] + d,
				m = i[M] + d,
				o = mx(a, f, b, g, i, d, e),
				q = [],
				u;
			2 == c ? (c = a[R], a = a[C], u = Ni) : (c = a[C], a = a[R], u = fn);
			for (var y = 0; y < e[I]; ++y) {
				var D = e[y],
					Y = o[y];
				if (W(Y)) {
					var L = Iu(b, D.ef, g, f, Y.Nd),
						X = Iu(b, D.ff, i, f, Y.we),
						G = iv(new wr(c, Y.y));
					q[v]({
						bn: 2,
						Kb: iv(D.ym(pr(Y.y, D.Lh[O], D.Lh.end))),
						cn: a,
						Lc: G,
						vr: new wt({
							fill: Se,
							rb: 0.7
						}),
						Ha: new wt({
							stroke: Se,
							Qa: 1,
							vd: 0.7
						}),
						yx: d,
						ef: {
							text: D.ef,
							t: g,
							anchor: {
								x: G.x,
								y: G.y
							},
							d: Op(L.d, function(a, b) {
								return {
									x: 0,
									y: (b - L.d[I]) * j,
									length: L.Yb,
									text: a
								}
							}),
							Za: u,
							Pa: fn,
							K: L.aa ? D.ef : S
						},
						vx: g,
						ff: {
							text: D.ff,
							t: i,
							anchor: {
								x: G.x,
								y: G.y
							},
							d: Op(X.d, function(a, b) {
								return {
									x: 0,
									y: (b + 1) * m,
									length: X.Yb,
									text: a
								}
							}),
							Za: u,
							Pa: Ni,
							K: X.aa ? D.ff : S
						},
						xx: i,
						wx: u,
						z: D.z,
						index: D[ic]
					})
				}
			}
			return q
		}

		function mx(a, b, c, d, e, f, g) {
			var i = d[M] + f,
				j = e[M] + f,
				m = Op(g, function(a, g) {
					var i = Iu(c, a.ef, d, b, p),
						j = Iu(c, a.ff, e, b, p);
					return {
						Ef: g,
						Vd: a.hr,
						Nd: i.d[I],
						we: j.d[I],
						ui: f,
						vi: f
					}
				});
			bq(m, function(a, b) {
				return a.Vd - b.Vd
			});
			var o = Op(m, function(a) {
				return a
			});
			bq(o, function(a, b) {
				return g[a.Ef].Zm - g[b.Ef].Zm
			});
			for (var q; q = nx(a, i, j, g, m, n), q.Vk;)
				for (var u = q.Ed, y = 0; y < o[I]; y++) {
					var D = o[y];
					if (u[D.Ef].Vk) {
						0 < D.we ? D.we-- : 0 < D.Nd && (D.Nd--, 0 == D.Nd && (Wp(m, D), Kp[bd][N](o, y, 1)));
						break
					}
				}
			return q.Ed
		}

		function nx(a, b, c, d, e, f) {
			if (0 < e[I]) e[0].ui = 0, Jp(e).vi = 0;
			for (var g = 0; g < e[I]; g++) {
				var i = e[g],
					j = e[g - 1],
					m = e[g + 1],
					m = m ? d[m.Ef].Lh.end - 5 : a[P];
				i.rp = new pt(s.min(i.Vd, j ? d[j.Ef].Lh[O] + 5 : a.top), s.max(i.Vd, m))
			}
			a = ox(a, b, c, e, f);
			d = n;
			f = {};
			for (g = 0; g < e[I]; g++) {
				var i = e[g],
					j = a[g],
					m = (j[Hc] - j.top - i.ui) / b,
					o = (j[P] - j[Hc] - i.vi) / c,
					m = s[B](m + 0.1),
					o = s[B](o + 0.1),
					q = m < i.Nd || o < i.we,
					d = d || q;
				f[i.Ef] = {
					y: j[Hc],
					Nd: m,
					we: o,
					Vk: q
				}
			}
			return {
				Ed: f,
				Vk: d
			}
		}

		function ox(a, b, c, d, e) {
			var f = nq(d, function(a) {
					return {
						anchor: a.Vd,
						top: a.Vd - (a.Nd * b + a.ui),
						bottom: a.Vd + (a.we * c + a.vi)
					}
				}),
				g = [];
			g[v](function(b, c) {
				var d = b[c].top;
				return 0 == c ? {
					top: s.max(a.top - d, 0)
				} : {
					top: s.max(b[Gp(c) - 1][P] - d, 0) / 2
				}
			});
			g[v](function(b, c) {
				var e = b[c][P];
				return c == d[I] - 1 ? {
					bottom: s.min(a[P] - e, 0)
				} : {
					bottom: s.min(b[Gp(c) + 1].top - e, 0) / 2
				}
			});
			g[v](function(a, c, f) {
				var g = a[c][Hc] - a[c].top,
					a = s.max(-g, 0),
					c = s.max(d[c].Nd * b + d[c].ui - s.max(g, 0), 0),
					f = (a + c * (e ? 1 : f)) / 2;
				return {
					anchor: f,
					top: -f
				}
			});
			g[v](function(a, b,
				f) {
				var g = a[b][P] - a[b][Hc],
					a = s.max(-g, 0),
					b = s.max(d[b].we * c + d[b].vi - s.max(g, 0), 0),
					f = (a + b * (e ? 1 : f)) / 2;
				return {
					anchor: -f,
					bottom: f
				}
			});
			g[v](function(a, b) {
				var c = a[b][Hc],
					e = d[b];
				return {
					anchor: pr(c, e.rp[O], e.rp.end) - c
				}
			});
			e && g[v](function(a, b, c) {
				return {
					anchor: (d[b].Vd - a[b][Hc]) * c
				}
			});
			var i = gv(f, g, function(a, b) {
				return {
					anchor: a[Hc] + (b[Hc] || 0),
					top: a.top + (b.top || 0),
					bottom: a[P] + (b[P] || 0)
				}
			}, function(a, b) {
				return s.max(s.abs(a[Hc] - b[Hc]), s.abs(a.top - b.top), s.abs(a[P] - b[P]))
			}, 0.999);
			return Op(d, function(a, b) {
				var c = i[b];
				return {
					anchor: c[Hc],
					top: c.top,
					bottom: c[P]
				}
			})
		}

		function px(a, b) {
			var c = Tp(a, function(a) {
				return a[ic] == b
			});
			if (0 > c) return {};
			var d = {};
			d[c] = {
				bn: 4,
				Ha: new wt({
					stroke: Se,
					Qa: 2,
					vd: 0.7
				})
			};
			return d
		};

		function qx(a, b, c, d) {
			for (var e = 0; e < a[dc](); e++) 0 > a[H](e, 1) && h(r(
				"Negative values are invalid for a pie chart."));
			this.D = a;
			this.k = b;
			this.ra = c;
			this.bf = b.R(ei, Fu);
			this.h = d;
			this.h.jc = ym;
			this.h.dn = this.k.za(Wn, n)
		}
		V = qx[K];
		V.tn = function() {
			var a = this.h;
			this.D[Fb](0) != pn && a.lj && h(r("Pie chart should have a first column of type string"));
			var b = this.Sj();
			this.Yr(b.ea.Hb, b.ea.ka, b.ea.ua, b.ea[Q]);
			b.f ? a.f.pb = b.f : a.f[fc] == jh ? a.f.pb = this.Wr() : a.f[fc] == gk && this.Xr(a.a, b, a.f
				.t, a.e)
		};
		V.Vm = function(a) {
			var b = this.h,
				c = {},
				d = this.k.Uc(Hl, S),
				e = a[tb],
				f = a.wf,
				a = a.si,
				g;
			b.Te ? (b = e, g = f, d = a) : g = b = d;
			c.br = new wt({
				stroke: b,
				Qa: 1,
				fill: e,
				rb: 1
			});
			c.wf = new wt({
				stroke: g,
				Qa: 1,
				fill: f,
				rb: 1
			});
			c.si = new wt({
				stroke: d,
				Qa: 1,
				fill: a,
				rb: 1
			});
			return c
		};
		V.Wr = function() {
			var a = this.h,
				b = a[Q] - a.a[P],
				c = a.f.t[M],
				d = [];
			d[v]({
				min: 2,
				T: [p]
			});
			var e = d[I];
			d[v]({
				min: c + 2,
				T: [p]
			});
			b = Yu(d, b);
			return b[I] > e ? (e = a.a[P] + b[e], new hs(e - c, a.a[R], e, a.a[C])) : l
		};
		V.Sj = function() {
			var a = this.h,
				b = a.a,
				c = a.f[fc],
				d = l,
				e = l,
				d = s[z](1.618 * a.uc),
				f = s[z](b[w] * (1 - 1 / 1.618) - d);
			c == hk ? (e = new hs(b.top, b[C] + f, b[P], b[C]), d = new hs(b.top, b[R], b[P], e[R] + d)) :
				c == hm ? (e = new hs(b.top, b[R], b[P], b[R] - f), d = new hs(b.top, e[C] - d, b[P], b[
				C])) : d = new hs(b.top, b[R], b[P], b[C]);
			var b = 0,
				c = s.min(d[R] - d[C], d[P] - d.top),
				f = c = s[B](c / 2),
				g = s[z]((d[R] + d[C]) / 2),
				d = s[z]((d[P] + d.top) / 2);
			a.Te && (f *= 0.8, b = c / 5, d -= b / 2);
			return {
				ea: {
					Hb: new wr(g, d),
					ka: c,
					ua: f,
					height: b
				},
				f: e
			}
		};
		V.Yr = function(a, b, c, d) {
			for (var e = this.h, f = this.D, g = Aw(this.k.Uc(Fl, S)), i = this.Vm(g), j = this.k.vc(Jl, {
						zb: e.Tc,
						fontSize: e.uc
					}), m = this.k.ia(Il, yu, Bl), o = this.k.ia(Xn, zu, ih), q = this.k.da(Wm, 1 / 720),
					u = this.k.za(Ci), y = this.k.Hc(Gl, Of), D = this.k.da(El, 0), Y = 0, L = 0; L < f[dc]
				(); L++) Y += f[H](L, 1) || 0;
			var X = 0,
				G = 0;
			e.e = [];
			e.$c = [];
			for (L = 0; L < f[dc](); ++L) {
				var aa = f[H](L, 1) || 0,
					na = f[Xc](L, 1),
					jb = f[H](L, 0),
					Da = f[Xc](L, 0),
					cc = G / Y,
					Sp = cc + aa / Y,
					rl = Sp - cc >= q;
				rl ? G += aa : X += aa;
				var Lf = Xm + L,
					ch = this.k.R(Lf + oe, this.bf[L % this.bf[I]]),
					ch = Aw(ch),
					qy =
					this.Vm(ch),
					ry = this.k.be(Lf + se, 0),
					sy = this.k.da(Lf + re, D),
					ty = this.k.vc(Lf + ue, j),
					aa = this.Um(L, cc, Sp, aa, na, Da, rl, a, b, c, sy, d, ry, m, ty, o, ch, qy);
				aa.z = this.k.za(Lf + pe, k);
				e.e[v](aa);
				this.k.za(Lf + we, rl || u) && e.$c[v]({
					id: jb,
					text: Da,
					b: new wt({
						fill: ch[tb]
					}),
					index: L,
					z: aa.z
				})
			}
			f = l;
			0 < X && (Da = y, f = this.Um(l, 1 - X / Y, 1, X, S + X, Da, k, a, b, c, D, d, 0, m, j, o, g,
				i), u || e.$c[v]({
					text: Da,
					b: new wt({
						fill: g[tb]
					}),
					index: l,
					z: n
				}));
			e.ea = {
				ka: b,
				ua: c,
				Hb: a,
				ej: d,
				zj: f
			}
		};

		function rx(a, b) {
			switch (b) {
				case Bl:
					return a.lk;
				case Ho:
					return a.rn;
				case ih:
					return a.rn + jd + a.lk + fe
			}
		}
		V.Um = function(a, b, c, d, e, f, g, i, j, m, o, q, u, y, D, Y, L, X) {
			q = this.h;
			if (q.Te || 1 <= o) o = 0;
			var G = {},
				aa = c - b;
			G.value = d;
			G.rn = e;
			va(G, L);
			G.cd = X;
			G.b = G.cd.br;
			Ha(G, f);
			La(G, a);
			G.wc = W(a) ? this.D[Jb](a) : l;
			G.B = g;
			a = j * o;
			o *= m;
			G.$f = a;
			G.Ye = o;
			G.ga = 360 * b;
			G.ca = 360 * c;
			d = 2 * s.PI * (b - 0.25);
			f = 2 * s.PI * (c - 0.25);
			G.lk = s[z](1E3 * aa) / 10 + Yd;
			L = S;
			switch (y) {
				case Bl:
					L = G.lk;
					break;
				case ek:
					L = G[J];
					break;
				case Ho:
					L = e
			}
			pa(G, L);
			if (!g) return G;
			G.t = D;
			e = this.ra(G[x], D)[w];
			g = D[M];
			G.Bh = new lq(e, g);
			G.Xc = 1 == aa;
			if (G[x])
				if (G.Xc) G.oj = yr(i, new wr(e / 2, g / 2)), G.nj = k;
				else {
					D =
						j - g;
					aa = m - g;
					e = G.Bh;
					e = new lq(e[w] / D, e[Q] / aa);
					g = new lq(2 / D, 2 / aa);
					y = lv((d + f) / 2 + s.PI, 1, 1);
					b: {
						for (var L = nv(new wr(0, 0), e), X = 1, na = s.min, jb = 0; jb < L[I]; ++jb) {
							var Da;
							var cc = L[jb];
							Da = y.x * cc.x + y.y * cc.y;
							cc = Da * Da + 1 - cc.Tr();
							0 > cc ? Da = l : (cc = s[Ib](cc), Da = [Da - cc, Da + cc]);
							if (ip(Da) || 0 > Da[1]) {
								L = l;
								break b
							}
							X = na(X, Da[1])
						}
						L = X
					}
					if (W(0.4) && 0.4 > L) e = l;
					else {
						y = y[Dc]()[Rc](-L);
						e = kv(e, g, g);
						b: {
							e = nv(y, e);g = qr(f - d, 2 * s.PI);L = 0;X = g;
							for (na = 0; na < e[I]; ++na) {
								jb = qr(s[Db](e[na].y, e[na].x) - d, 2 * s.PI);
								if (jb >= g || 0 == jb) {
									e = n;
									break b
								}
								X = s.min(jb, X);
								L =
									s.max(jb, L)
							}
							e = L - X < s.PI
						}
						e = e ? y : l
					}
					D = e && new wr(e.x * D, e.y * aa);
					if (!ip(D)) G.nj = k, G.oj = jv(i, D, new wr(-G.Bh[w] / 2, -G.Bh[Q] / 2))
				}
			else G.nj = n;
			G.Yc = lv((d + f) / 2, j, m)[Rc](u);
			u = lv(f, j, m);
			G.Ba = xr(i, lv(d, j, m));
			G.Ib = xr(i, u);
			m = lv(f, a, o);
			G.jm = xr(i, lv(d, a, o));
			G.km = xr(i, m);
			if (q.Te && 270 >= G.ga && 90 <= G.ca) m = {}, 90 > G.ga ? (m.ga = 90, m.Ba = new wr(i.x + j, i
				.y)) : (m.ga = G.ga, m.Ba = G.Ba), 270 < G.ca ? (m.ca = 270, m.Ib = new wr(i.x - j, i
				.y)) : (m.ca = G.ca, m.Ib = G.Ib), m.b = G.cd.wf, G.C = m;
			G.xd = q.Te && 0.5 < b;
			G.ce = q.Te && 0.5 > c;
			if (G.xd || G.ce) G.sh = G.cd.wf;
			G.Xf = {
				lf: G[J],
				content: rx(G, Y)
			};
			return G
		};
		V.Xr = function(a, b, c) {
			for (var d = this.h, e = b.ea.ka, f = b.ea.ua, g = b.ea.Hb, i = this.k.ia(kk, zu, Bl), j = s
					.PI * (3 * (e + f) - s[Ib]((3 * e + f) * (e + 3 * f))), m = [], o = [], q = 0; q < d.$c[
					I]; ++q) {
				var u = d.$c[q],
					y;
				y = u[ic] != l ? d.e[u[ic]] : d.ea.zj;
				var D = s.max((e + y.$f) / 2, 0.75 * e),
					Y = s.max((f + y.Ye) / 2, 0.75 * f),
					L = (y.ca + y.ga) / 2,
					X = 360 * (ur(e - D, f - Y) / j),
					G, aa;
				2 * X < y.ca - y.ga ? (G = y.ga + X, aa = y.ca - X, 180 > L ? aa = s.min(aa, 180) : G = s
					.max(G, 180)) : aa = G = L;
				var na = function(a) {
						return xr(g, lv(a, D, Y))
					},
					X = function(a) {
						return na(s.asin(pr((a - g.y) / Y, -1, 1)))
					},
					jb = function(a) {
						return na(s.PI -
							s.asin(pr((a - g.y) / Y, -1, 1)))
					},
					u = {
						hr: na(sr(L - 90)).y,
						Lh: new pt(na(sr(G - 90)).y, na(sr(aa - 90)).y),
						ef: u[x],
						ff: rx(y, i),
						Zm: y[nb],
						z: u.z,
						index: y[ic]
					};
				180 > L ? (u.ym = X, m[v](u)) : (u.ym = jb, o[v](u))
			}
			b = a[w] / 2 - b.ea.ka - c[M];
			m = lx(new hs(a.top, a[R], a[P], a[R] - b), this.ra, 2, c, m);
			a = lx(new hs(a.top, a[C] + b, a[P], a[C]), this.ra, 1, c, o);
			c = [];
			Zp(c, m, a);
			this.h.Bc = c
		};

		function sx(a, b, c, d, e) {
			this.jj = a;
			this.D = l;
			this.k = b;
			this.ra = c;
			var f = this.h = {};
			f.tc = c;
			oa(f, d);
			Ua(f, e);
			f.N = b.ia(po, ou, U);
			f.Tc = b.Hc(cj);
			f.uc = b.da(dj, s[z](s.pow(2 * (f[w] + f[Q]), 1 / 3)));
			f.fm = b.ia(Dm, pu, Ak);
			f.mj = b.vc(Yn, {
				zb: f.Tc,
				fontSize: f.uc
			});
			f.Ic = b.ia(Zn, Cu, Hj);
			f.vh = b.ia(um, Vt, Mm);
			f.cj = b.zh(Mg);
			f.bj = b.zh(Ig);
			f.Eq = b.Uc(Rg, S);
			f.Fq = b.Uc(vj, S);
			f.Se = At(f.bj, f.cj) || S;
			c = {
				zb: f.Tc,
				fontSize: f.uc,
				$a: f.Se
			};
			f.Cq = b.vc(zg, c);
			f.Dq = b.vc(wg, c);
			f.Iq = b.Uc(xg, S);
			c = b.Hc(Nn);
			f.Pe = b.ia(Qn, vu, ol);
			d = b.vc(Rn, {
				zb: f.Tc,
				fontSize: f.uc,
				$a: f.Pe == Pj ? f.Se : U
			});
			Ha(f, {
				text: c,
				t: d,
				d: [],
				Za: fn,
				Pa: Ni,
				K: S
			});
			f.Vf = b.ia(Jg, vu, ol);
			f.Te = b.za($j);
			f.Qe = b.za(Wj);
			f.ae = b.ia(Vj, Au, yi);
			f.z = this.k.za(Mi, k);
			f.lj = this.k.za(on, k) || a.getColumnProperty(0, jm) == Fi;
			this.xj();
			f.ae == Ei && (!f.gb || f.gb.line != f.e[I]) && h(r(
				"DIVE interactivity model is only supported when all series are of type line."))
		}
		V = sx[K];
		V.Gg = function() {
			return this.h
		};
		V.xj = function() {
			var a = this.h;
			this.$r();
			this.Sj();
			var b = l,
				c = hm;
			a.N == Dl ? b = new qx(this.D, this.k, this.ra, a) : (b = new fx(this.D, this.k, this.ra, a), b
				.xm() && (c = io));
			var c = this.k.ia(nk, tu, c),
				d = this.k.vc(sk, {
					zb: a.Tc,
					fontSize: a.uc,
					$a: c == Pj ? a.Se : U
				});
			a.f = {
				position: c,
				t: d,
				pb: l,
				ha: l,
				kc: l,
				qg: l
			};
			b.tn();
			this.Nj = new kx(a, this.k);
			this.bs();
			a.f.pb && this.Nj.as()
		};
		V.qi = function(a, b, c) {
			var d = NaN,
				e = a.Mc(b);
			W(e) ? d = e : (a = a.hi(b), W(a) && (a = yp(a), b = a[I] - 1, 0 <= b && a[sb](Yd, b) == b && (
				d = a[I] - 1, b = a, 0 <= d && d < a[I] && (b = a[Zb](0, d) + a[Zb](d + 1, a[
					I] - d - 1)), a = Gp(b), d = c * a / 100)));
			return d = s[z](pr(d, 0, c))
		};
		V.$r = function() {
			var a = this.h,
				b = this.jj,
				c = new google[wc].DataView(b);
			if (a.N != rm && a.N != oh) {
				var d = b[mb](),
					e = l,
					f = l;
				if (0 < d) {
					b.getColumnProperty(0, jm);
					var g = b[Fb](0);
					if (!a.lj && g != pn && (1 == d || g == b[Fb](1))) e = {
						calc: Li,
						type: pn
					}, f = 0
				}
				if (W(e)) {
					for (a = [e]; f < d; f++) a[v](f);
					c.setColumns(a)
				}
			}
			2 > c[mb]() && h(r("Not enough columns given to draw the requested chart."));
			if (this.k.za(fm)) {
				d = [];
				for (f = b[dc]() - 1; 0 <= f; f--) d[v](f);
				c.setRows(d)
			}
			this.D = c
		};
		V.mo = function(a, b, c, d) {
			ka(b) && (b = d());
			ka(a) && (a = s[z]((c - b) / 2));
			b = s.min(a + b, c);
			return {
				start: a,
				end: b
			}
		};
		V.Sj = function() {
			var a = this.h,
				b = this.qi(this.k, Kh, a[w]),
				c = this.qi(this.k, Hh, a[Q]),
				d = this.qi(this.k, Jh, a[Q]),
				e = this.qi(this.k, Ih, a[w]),
				f = Z(function() {
					var b = a[w] / 1.618,
						c = a[w] - a[Q] * (1.618 - 1);
					return s[z](b > c ? b : (b + 2 * c) / 3)
				}, this),
				e = this.mo(e, b, a[w], f),
				b = s.min(e[O], e.end),
				e = e.end,
				f = e - b,
				g = Z(function() {
					var b = a[Q] / 1.618,
						c = a[Q] - a[w] * (1.618 - 1);
					return s[z](b > c ? b : (b + 2 * c) / 3)
				}, this),
				d = this.mo(d, c, a[Q], g),
				c = s.min(d[O], d.end),
				d = d.end;
			a.a = {
				left: b,
				right: e,
				width: f,
				top: c,
				bottom: d,
				height: d - c
			}
		};
		V.bs = function() {
			var a = this.h,
				b = a[J].t[M],
				c = a.f.t[M],
				d = a.f[fc],
				e = a.Pe == ol ? a[J][x] : S,
				f = Iu(this.ra, e, a[J].t, a.a[w], p),
				g = s.max(2, s[z](b / 3.236)),
				i = s.max(2, s[z](c / 1.618)),
				j = s.max(2, s[z](1.618 * a.uc)),
				m = [];
			m[v]({
				key: kh,
				min: 2,
				T: [j - 2]
			});
			m[v]({
				key: jo,
				min: 0,
				T: [p]
			});
			0 < f.d[I] && m[v]({
				key: Nn,
				min: b + 2,
				T: []
			});
			if (d == io) {
				j = this.Nj.Vr(a.a[w]);
				for (d = 0; d < j; ++d) m[v]({
					key: ik,
					min: c + 2,
					T: [i - 2]
				})
			}
			for (d = 1; d < f.d[I]; d++) m[v]({
				key: Nn,
				min: b + 2,
				T: [g - 2]
			});
			f = Zu(m, a.a.top);
			b = f[jo][0] || 0;
			g = f[J] || [];
			i = Iu(this.ra, e, a[J].t, a.a[w], g[I]);
			for (d =
				0; d < i.d[I]; d++) b += g[d], a[J].d[v]({
				text: i.d[d],
				x: a.a[C],
				y: b,
				length: a.a[w]
			});
			a[J].K = i.aa ? e : S;
			e = f.legend || [];
			if (0 < e[I]) this.Nj.mg = e[I], c = b + e[0] - c, b += tr[Uc](l, e), a.f.pb = new hs(c, a.a[R],
				b, a.a[C])
		};

		function tx(a, b) {
			this.tg = a;
			this.ug = b;
			this.Ab = sq(a);
			if (this.Ab.ta) this.Ab.ta = Op(this.Ab.ta, sq), this.Nm = Uu(a.ta[I], function(c) {
				return ux(a.ta[c], b.ta[c], this.Ab.ta[c], k, n)
			}, this);
			if (this.Ab.Ka) this.Ab.Ka = Op(this.Ab.Ka, sq), this.Om = Uu(a.Ka[I], function(c) {
				return ux(a.Ka[c], b.Ka[c], this.Ab.Ka[c], n, k)
			}, this);
			this.rf = this.Fd = l;
			this.vu();
			this.Rh = this.Wj = l;
			this.uu()
		}

		function ux(a, b, c, d, e) {
			var f = sq(a),
				g = sq(a);
			if (a.L && b.L) {
				if (a.V && b.V) g.V = b.V, c.V = sq(c.V);
				var i = a.L.mc,
					j = b.L.mc;
				g.L = sq(g.L);
				c.L = sq(c.L);
				g.L.mc = j;
				if (a.kb && b.kb) {
					g.kb = Yp(g.kb);
					c.kb = Yp(c.kb);
					for (var m = g.kb, o = c.kb, q = 0; q < m[I]; q++) {
						m[q] = sq(m[q]);
						o[q] = sq(o[q]);
						var u = m[q];
						u.u = j(u.fa)
					}
				}
				if (a[x] && b[x]) {
					pa(g, Yp(g[x]));
					pa(c, Yp(c[x]));
					m = g[x];
					c = c[x];
					vx(m);
					vx(c);
					for (q = 0; q < m[I]; q++) wx(a[x][q], b[x][q], i, j, m[q], d, e)
				}
			} else if (a[x] && b[x]) {
				var y = dv(a[x], b[x], function(a, b) {
					return a.fa == b.fa
				});
				pa(f, Np(a[x], function(a, b) {
					return W(y.ng[b])
				}));
				pa(g, Np(b[x], function(a, b) {
					return W(y.og[b])
				}));
				pa(c, Yp(f[x]));
				vx(f[x]);
				vx(g[x]);
				vx(c[x])
			}
			return [f, g]
		}

		function wx(a, b, c, d, e, f, g) {
			b = e.o;
			c = c(e.fa);
			d = d(e.fa);
			if (f) f = a.o[Hc].x - c, b[Hc].x = d + f;
			if (g) f = a.o[Hc].y - c, b[Hc].y = d + f
		}

		function vx(a) {
			Mp(a, function(b, c) {
				a[c] = sq(a[c]);
				b = a[c];
				b.o = sq(b.o);
				var d = b.o;
				d[Hc] && Qa(d, sq(d[Hc]))
			})
		}
		V = tx[K];
		V.vu = function() {
			var a = this.tg,
				b = this.ug;
			if (a.e && b.e) {
				var c = dv(a.e, b.e, function(a, b) {
					return a.id == b.id
				});
				this.Fd = Np(a.e, function(a, b) {
					return W(c.ng[b])
				});
				this.rf = Np(b.e, function(a, b) {
					return W(c.og[b])
				});
				a.N == T || a.N == rm ? (a = a[Qb] == Gj ? a.ta[0] : a.Ka[0], a.L ? this.at(a.L.sg, a.L
					.Pq) : this.bt()) : a.N == oh && this.$s()
			}
		};
		V.bt = function() {
			var a = this.tg.v,
				b = this.ug.v;
			if (a && b) {
				for (var c = dv(a, b, function(a, b) {
						return a[A] == b[A]
					}), d = 0, e = 0, f = [], g = []; d < a[I] || e < b[I];) d < a[I] && !W(c.ng[d]) ? (g[v]
					({
						Ae: {
							Sc: d,
							Kf: k
						},
						Be: {
							Sc: e,
							Kf: n
						}
					}), f[v]({
						data: a[d][A]
					}), d++) : (e < b[I] && !W(c.og[e]) ? (g[v]({
					Ae: {
						Sc: d,
						Kf: n
					},
					Be: {
						Sc: e,
						Kf: k
					}
				}), f[v]({
					data: b[e][A]
				})) : (g[v]({
					Ae: {
						Sc: d,
						Kf: k
					},
					Be: {
						Sc: e,
						Kf: k
					}
				}), f[v]({
					data: a[d][A]
				}), d++), e++);
				this.Ab.v = f;
				this.mi(g, function(a, b) {
					return b.Kf ? a[b.Sc] : 0 == b.Sc ? a[0] : b.Sc >= a[I] ? Jp(a) : xx(a[b.Sc -
						1], a[b.Sc], 0.5)
				})
			}
		};
		V.at = function(a, b) {
			var c = this.tg.v,
				d = this.ug.v;
			if (c && d)
				if (0 == c[I] || 0 == d[I]) this.Ab.v = [], this.mi([], function() {
					return l
				});
				else {
					for (var e = function(b) {
							return a(b[A])
						}, f = ev(c, d, e), g = ev(d, c, e), i = 0, j = 0, m = [], o = []; i < c[I] || j <
						d[I];) i < c[I] && (f[i] < j || j < d[I] && g[j] > i) ? (o[v]({
						Ae: i,
						Be: f[i]
					}), m[v]({
						data: c[i][A]
					}), i++) : (j < d[I] && (i < c[I] && f[i] > j || g[j] < i) ? (o[v]({
						Ae: g[j],
						Be: j
					}), m[v]({
						data: d[j][A]
					})) : (o[v]({
						Ae: i,
						Be: j
					}), m[v]({
						data: b(ur(e(c[i]), e(d[j])))
					}), i++), j++);
					this.Ab.v = m;
					this.mi(o, function(a, b) {
						return a[b]
					})
				}
		};
		V.$s = function() {
			for (var a = this.tg.e[0].c, b = this.ug.e[0].c, c = dv(a, b, function(a, b) {
					return !a && !b ? k : !a || !b ? n : a.id == b.id
				}), d = 0, e = 0, f = []; d < a[I] || e < b[I];)
				if (d < a[I] && !W(c.ng[d])) d++;
				else {
					if (!(e < b[I]) || W(c.og[e])) f[v]({
						Ae: d,
						Be: e
					}), d++;
					e++
				} this.mi(f, function(a, b) {
				return a[b]
			})
		};
		V.mi = function(a, b) {
			for (var c = 0; c < this.Fd[I]; c++) {
				for (var d = this.Fd[c].c, e = this.rf[c].c, f = [], g = [], i = 0; i < a[I]; i++) {
					var j = a[i];
					f[v](b(d, j.Ae));
					g[v](b(e, j.Be))
				}
				this.Fd[c] = yx(this.Fd[c], f);
				this.rf[c] = yx(this.rf[c], g)
			}
		};

		function yx(a, b) {
			var c = sq(a);
			c.c = b;
			return c
		}
		V.uu = function() {
			var a = this.tg,
				b = this.ug;
			if (a.f && a.f.ha && b.f && b.f.ha) {
				var a = a.f.ha[0],
					b = b.f.ha[0],
					c = dv(a, b, function(a, b) {
						return a.id == b.id
					});
				this.Wj = Np(a, function(a, b) {
					return W(c.ng[b])
				});
				this.Rh = Np(b, function(a, b) {
					return W(c.og[b])
				});
				this.Ab.f = sq(this.Ab.f);
				b = this.Ab.f;
				b.kc = Yp(this.Rh);
				b.ha = [b.kc];
				b = b.kc;
				for (a = 0; a < b[I]; ++a) {
					b[a] = sq(b[a]);
					var d = b[a];
					if (d.o && (d.o = sq(d.o), d.o.d)) {
						d.o.d = Yp(d.o.d);
						for (var e = 0; e < d.o.d[I]; e++) d.o.d[e] = sq(d.o.d[e])
					}
					if (d.P && (d.P = sq(d.P), d.P.S)) d.P.S = d.P.S[Dc]();
					if (d.ba && (d.ba =
							sq(d.ba), d.ba.S)) d.ba.S = sq(d.ba.S)
				}
			}
		};

		function zx(a, b, c) {
			if (a !== b)
				if (a && a[sc] == wt && b && b[sc] == wt) a = new wt({
					fill: st(a.O, b.O, 1 - c),
					rb: zx(a.$b, b.$b, c),
					stroke: st(a.Jb, b.Jb, 1 - c),
					Qa: zx(a.H, b.H, c),
					vd: zx(a.nc, b.nc, c),
					io: a.jd,
					F: a.F,
					pattern: a.Ea
				});
				else if (jp(a) && jp(b))
				if (a) {
					if (b) {
						for (var d = [], e = s.min(a[I], b[I]), f = 0; f < e; f++) d[v](zx(a[f], b[f], c));
						a = d
					}
				} else a = b;
			else a = mp(a) && mp(b) ? Ax(a, b, c) : op(a) && op(b) ? a * (1 - c) + b * c : l;
			return a
		}

		function Ax(a, b, c) {
			if (!a) return b;
			if (!b) return a;
			var d = {};
			mq(a, function(e, f) {
				hp(b[f]) && (d[f] = zx(a[f], b[f], c))
			});
			return d
		}

		function Bx(a, b, c, d, e) {
			b = !e || (c ? b >= c.top && b <= c[P] : n);
			return (!d || (c ? a >= c[C] && a <= c[R] : n)) && b
		}

		function Cx(a, b, c, d, e) {
			if (a.L && a.L.mc && b.L && b.L.mc) c.L.mc = function(c) {
				var d = a.L.mc(c),
					c = b.L.mc(c);
				return zx(d, c, e)
			};
			if (a.V && b.V) c.V.u = zx(a.V.u, b.V.u, e);
			a.kb && b.kb && Mp(c.kb, function(c, g) {
				c.u = zx(a.kb[g].u, b.kb[g].u, e);
				c.B = d(c.u, c.u)
			});
			a[x] && b[x] && Mp(c[x], function(c, g) {
				if (c) {
					var i = a[x][g].o,
						j = b[x][g].o,
						m = c.o;
					if (m && m[Hc]) m[Hc].x = zx(i[Hc].x, j[Hc].x, e), m[Hc].y = zx(i[Hc].y, j[Hc].y,
					e);
					if (c.o) c.B = d(c.o[Hc].x, c.o[Hc].y)
				}
			})
		}

		function xx(a, b, c) {
			if (!a || !b) return l;
			var d = sq(a);
			if (hp(a.i) && hp(b.i)) d.i = zx(a.i, b.i, c);
			if (hp(a.ld) && hp(b.ld)) d.ld = zx(a.ld, b.ld, c);
			if (hp(a.md) && hp(b.md)) d.md = zx(a.md, b.md, c);
			return d
		}
		V.Ut = function(a) {
			var b = this.Ab;
			if (b.ta) {
				var c = function(a, c) {
					return Bx(a, c, b.a, k, n)
				};
				Mp(b.ta, function(b, d) {
					Cx(this.Nm[d][0], this.Nm[d][1], b, c, a)
				}, this)
			}
			if (b.Ka) {
				var d = function(a, c) {
					return Bx(a, c, b.a, n, k)
				};
				Mp(b.Ka, function(b, c) {
					Cx(this.Om[c][0], this.Om[c][1], b, d, a)
				}, this)
			}
			if (this.Fd && this.rf) {
				b.e = [];
				for (var e = 0; e < this.Fd[I]; ++e) {
					var f = this.Fd[e],
						g = this.rf[e],
						i = sq(g);
					if (f && g && f.c && g.c && f[F] == g[F]) {
						i.c = [];
						for (var j = 0; j < f.c[I]; j++) i.c[j] = xx(f.c[j], g.c[j], a)
					}
					b.e[e] = i
				}
			}
			if (this.Wj && this.Rh && b.f && b.f.kc)
				for (e =
					0; e < b.f.kc[I]; e++) {
					f = b.f.kc[e];
					g = this.Wj[e];
					i = this.Rh[e];
					if (f.o && f.o.d && g.o && g.o.d && 0 != g.o.d[I] && i.o && i.o.d)
						for (var m = f.o.d, o = g.o.d, q = i.o.d, u = o[I], j = 0; j < m[I]; j++) {
							var y = j < u ? o[j] : o[u - 1];
							m[j].x = zx(y.x, q[j].x, a);
							m[j].y = zx(y.y, q[j].y, a)
						}
					if (f.P && f.P.S && g.P && g.P.S && i.P && i.P.S) j = zx(g.P.S, i.P.S, a), f.P.S =
						new js(j[C], j.top, j[w], j[Q]);
					if (f.ba && f.ba.S && g.ba && g.ba.S && i.ba && i.ba.S) f.ba.S = zx(g.ba.S, i.ba.S, a)
				}
			return b
		};

		function Dx(a, b) {
			var c = new Et,
				d = a.eb;
			if (0 == d[I] || 1 == d[I]) return c;
			for (var e = [l], f = 0; f < d[I]; f++) {
				var g = d[f];
				g[A] && e[v](new $(g[A].x, g[A].y))
			}
			e[v](l);
			var g = d[d[I] - 1][F] == Vh,
				f = e[1][Dc](),
				i = e[2][Dc](),
				j = e[e[I] - 3][Dc](),
				m = e[e[I] - 2][Dc]();
			g ? (e[0] = m, e[e[I] - 1] = f) : iq(f, m) ? (e[0] = j, e[e[I] - 1] = i) : (e[0] = (new vr(f.x, f.y,
				i.x, i.y)).Ep(-1), e[e[I] - 1] = (new vr(m.x, m.y, j.x, j.y)).Ep(-1));
			for (var i = 0 > b, o = Ex(e[0], e[1], b), j = e[I] - 2, f = 1; f <= j; f++) {
				var m = Ex(e[f], e[f + 1], b),
					q = Fx(o, m),
					u;
				if (mp(q)) {
					u = Fx(Gx(e[f - 1], e[f]), o);
					var y = Fx(Gx(e[f],
						e[f - 1]), o);
					u = qt(new pt(u.x, y.x), q.x) && qt(new pt(u.y, y.y), q.y)
				} else u = q == p;
				o = u && q != p ? q : Fx(Gx(e[f], e[f - 1]), o);
				c.ac(Hx(d[f - 1], o));
				u || (o = 180 - 180 * s[Db](o.x - e[f].x, o.y - e[f].y) / s.PI, q = Fx(Gx(e[f], e[f + 1]), m), c
					.jb(e[f].x, e[f].y, s.abs(b), s.abs(b), o, 180 - 180 * s[Db](q.x - e[f].x, q.y - e[f]
						.y) / s.PI, i));
				o = m
			}
			g && c[Ac]();
			return c
		}

		function Hx(a, b) {
			var c = tq(a);
			switch (a[F]) {
				case Zk:
				case Ak:
					c[A].x = b.x;
					c[A].y = b.y;
					break;
				case ji:
					c[A].x = b.x;
					c[A].y = b.y;
					var d = b.x - a[A].x,
						e = b.y - a[A].y;
					c[A].Cb += d;
					c[A].Db += e;
					c[A].gd += d;
					c[A].hd += e
			}
			return c
		}

		function Ex(a, b, c) {
			var d, e = (b.y - a.y) / (b.x - a.x);
			d = !ia(e) ? {
				Oe: p,
				Gc: a.x
			} : {
				Oe: e,
				Gc: a.y - e * a.x
			};
			e = d.Oe;
			d = d.Gc;
			if (e == p) return {
				Oe: p,
				Gc: 0 > b.y - a.y ? d + c : d - c
			};
			c *= s[Ib](1 + e * e);
			return {
				Oe: e,
				Gc: 0 < b.x - a.x ? d + c : d - c
			}
		}

		function Gx(a, b) {
			var c = (a.x - b.x) / (b.y - a.y),
				d;
			ia(c) ? d = a.y - c * a.x : (c = p, d = a.x);
			return {
				Oe: c,
				Gc: d
			}
		}

		function Fx(a, b) {
			var c = a.Oe,
				d = a.Gc,
				e = b.Oe,
				f = b.Gc;
			ia(c) || (c = p);
			ia(e) || (e = p);
			if (rt(c, e)) return rt(d, f) ? p : l;
			if (c == p) return new $(d, e * d + f);
			if (e == p) return new $(f, c * f + d);
			var g = e - c;
			return new $(-(f - d) / g, (d * e - c * f) / g)
		};

		function Ix() {
			this.Ub = {};
			this.Tb = {};
			this.Vb = {}
		}
		V = Ix[K];
		Ba(V, function() {
			this.Ub = {};
			this.Tb = {};
			this.Vb = {}
		});
		Oa(V, function() {
			var a = new Ix;
			a.Ub = sq(this.Ub);
			a.Tb = sq(this.Tb);
			a.Vb = sq(this.Vb);
			return a
		});
		V.Od = function(a) {
			return lu(this.Ub, a.Ub) && lu(this.Tb, a.Tb) && lu(this.Vb, a.Vb)
		};
		V.zq = function(a) {
			var a = a == mm ? this.Ub : this.Tb,
				b = [],
				c;
			for (c in a) b[v](ga(c, 10));
			return b
		};
		V.Bk = function() {
			return this.zq(mm)
		};
		V.Wn = function() {
			return this.zq(fi)
		};
		V.Vn = function() {
			var a = [],
				b;
			for (b in this.Vb) {
				var c = b[qc](ge);
				a[v]({
					row: ga(c[0], 10),
					column: ga(c[1], 10)
				})
			}
			return a
		};
		V.getSelection = function() {
			for (var a = [], b = this.Bk(), c = this.Wn(), d = this.Vn(), e = 0; e < b[I]; e++) {
				var f = {};
				f.row = b[e];
				a[v](f)
			}
			for (e = 0; e < c[I]; e++) f = {}, f.column = c[e], a[v](f);
			for (e = 0; e < d[I]; e++) f = {}, f.row = d[e].row, f.column = d[e].column, a[v](f);
			return a
		};
		V.Wv = function(a, b) {
			return a == mm ? this.Vl(b[0]) : this.Ul(b[0])
		};
		V.Vl = function(a) {
			return this.Ub[S + a] != l
		};
		V.Ul = function(a) {
			return this.Tb[S + a] != l
		};
		V.fq = function(a, b) {
			return this.Vb[S + (a + ge + b)] != l
		};
		V.bm = function(a, b) {
			if (this.Wv(a, b)) return n;
			a == mm ? this.Ub[b[0]] = 1 : a == fi ? this.Tb[b[0]] = 1 : this.Vb[S + (b[0] + ge + b[1])] = 1;
			return k
		};
		V.addRow = function(a) {
			return this.bm(mm, [a])
		};
		V.addColumn = function(a) {
			return this.bm(fi, [a])
		};
		V.Yw = function(a, b) {
			return this.bm(Dh, [a, b])
		};
		V.pk = function(a, b) {
			var c = this.Vl(a);
			b && this[Pb]();
			c ? this.removeRow(a) : this.addRow(a);
			return !c
		};
		V.Zs = function(a, b) {
			var c = this.Ul(a);
			b && this[Pb]();
			c ? this.removeColumn(a) : this.addColumn(a);
			return !c
		};
		V.En = function(a, b, c) {
			var d = this.fq(a, b);
			c && this[Pb]();
			d ? this.$w(a, b) : this.Yw(a, b);
			return !d
		};
		V.removeRow = function(a) {
			if (!this.Vl(a)) return n;
			delete this.Ub[a];
			return k
		};
		V.removeColumn = function(a) {
			if (!this.Ul(a)) return n;
			delete this.Tb[a];
			return k
		};
		V.$w = function(a, b) {
			if (!this.fq(a, b)) return n;
			delete this.Vb[S + (a + ge + b)];
			return k
		};
		V.setSelection = function(a) {
			var b = {},
				c = {},
				d = {};
			a || (a = []);
			for (var e = 0; e < a[I]; e++) {
				var f = a[e];
				f.row != l && f.column != l ? d[S + (f.row + ge + f.column)] = 1 : f.row != l ? b[f.row] =
					1 : f.column != l && (c[f.column] = 1)
			}
			var g = this.Qf(b, this.Ub),
				i = this.Qf(c, this.Tb),
				j = this.Qf(d, this.Vb),
				a = this.Qf(this.Ub, b),
				e = this.Qf(this.Tb, c),
				f = this.Qf(this.Vb, d);
			this.Ub = b;
			this.Tb = c;
			this.Vb = d;
			b = new Ix;
			b.Ub = g;
			b.Tb = i;
			b.Vb = j;
			c = new Ix;
			c.Ub = a;
			c.Tb = e;
			c.Vb = f;
			return new Jx(b, c)
		};
		V.Qf = function(a, b) {
			var c = {},
				d;
			for (d in a) b[d] || (c[d] = 1);
			return c
		};

		function Jx(a, b) {
			this.Lx = a;
			this.Mx = b
		};

		function Kx(a) {
			this.selected = new Ix;
			this.s = {
				na: l,
				Xa: l,
				Bb: l
			};
			this.X = {
				na: l,
				Xa: l,
				Bb: l
			};
			this.Ob = {
				s: {
					Md: l,
					w: l
				}
			};
			this.f = {
				s: {
					lc: l
				},
				vf: l
			};
			Ja(this, {
				position: l
			});
			if (a) {
				this[kb][Nb](a[kb]);
				if (a.s) this.s = Lx(this.s, a.s);
				if (a.X) this.X = Lx(this.X, a.X);
				if (a.Ob) this.Ob = Lx(this.Ob, a.Ob);
				if (a.f) this.f = Lx(this.f, a.f)
			}
		}
		Oa(Kx[K], function() {
			var a = new Kx;
			a.selected = this[kb][Dc]();
			a.s = mu(this.s);
			a.X = mu(this.X);
			a.Ob = mu(this.Ob);
			a.f = mu(this.f);
			Ja(a, mu(this[gc]));
			return a
		});
		Kx[K].Od = function(a) {
			return this[kb].Od(a[kb]) && lu(this.s, a.s) && lu(this.X, a.X) && lu(this.Ob, a.Ob) && lu(this
				.f, a.f) && lu(this[gc], a[gc])
		};

		function Lx(a, b) {
			var c = new ju(2);
			c.Lb(0, a);
			c.Lb(1, b);
			return c[ad]()
		};

		function Mx(a, b, c, d, e) {
			var f = {
				pc: []
			};
			W(e) && f.pc[v]({
				type: dn,
				data: {
					size: b[M] / 2,
					color: e
				}
			});
			W(c) && (W(d) || h(r("Line title is specified without a text style.")), c = {
				type: An,
				data: {
					text: c + Ye,
					style: d
				}
			}, f.pc[v](c));
			c = {
				type: An,
				data: {
					text: a,
					style: b
				}
			};
			f.pc[v](c);
			return f
		}

		function Nx(a, b, c, d, e, f, g) {
			var i;
			for (var j = i = 0; j < a.d[I]; j++)
				for (var m = a.d[j], o = 0; o < m.pc[I]; o++) {
					var q = m.pc[o];
					q[F] == An && (i = s.max(i, q[A][zc][M]))
				}
			i = 0 == i ? g : i;
			for (var u, m = g = j = 0; m < a.d[I]; m++) o = Ox(a.d[m], b), g += o[Q] + (0 < m ? o.Rg : 0), j = s
				.max(j, o[w]);
			j = s.max(j, 2 * i);
			j = s[z](j + 2 * i / 1.618);
			g = s[z](g + 2 * i / 1.618);
			u = new lq(j, g);
			var j = d.x >= f.x ? 1 : -1,
				m = d.y > f.y ? 1 : -1,
				y = l,
				y = c ? new $(d.x + j * i, d.y + m * (i + u[Q] / 2)) : new $(d.x + j * u[w] / 2, d.y + m * u[
					Q] / 2),
				o = y.x - u[w] / 2,
				q = o + u[w],
				D = y.y - u[Q] / 2,
				Y = D + u[Q],
				g = {};
			if (c) c = new $(y.x, d.y + i / (i + u[Q] / 2) * (y.y -
				d.y)), y = new $(y.x + -1 * (d.x - y.x), c.y), c.x = s[z](c.x), c.y = s[z](c.y), y.x = s[z](
				y.x), y.y = s[z](y.y), g.Eb = 1 == j * m ? [c, d, y] : [y, d, c];
			g.p = new hs(s[z](D), s[z](q), s[z](Y), s[z](o));
			d = e[C] + 5;
			c = e[R] - 5;
			if (!(g.p[C] >= d && g.p[R] <= c)) {
				j = tq(g);
				m = j.p[C];
				xa(j.p, f.x + -1 * (j.p[R] - f.x));
				Va(j.p, f.x + -1 * (m - f.x));
				if (m = j.Eb) o = m[0], m[0] = m[2], m[2] = o, m[0].x = f.x + -1 * (m[0].x - f.x), m[1].x = f
					.x + -1 * (m[1].x - f.x), m[2].x = f.x + -1 * (m[2].x - f.x);
				if (j.p[C] >= d && j.p[R] <= c) g.p = j.p, g.Eb = j.Eb;
				else {
					if (g.Eb && (m = new pt(d + 4, c - 4), o = new pt(j.Eb[0].x, j.Eb[2].x), q = new pt(g.Eb[0]
							.x,
							g.Eb[2].x), !(m[O] <= q[O] && m.end >= q.end) && m[O] <= o[O] && m.end >= o.end)) g
						.p = j.p, g.Eb = j.Eb;
					g.p[R] > c && (xa(g.p, g.p[C] - (g.p[R] - c)), Va(g.p, c));
					g.p[C] < d && (Va(g.p, g.p[R] + (d - g.p[C])), xa(g.p, d))
				}
			}
			d = e.top + 5;
			e = e[P] - 5;
			if (!(g.p.top >= d && g.p[P] <= e)) {
				c = tq(g);
				j = c.p.top;
				c.p.top = f.y + -1 * (c.p[P] - f.y);
				Ra(c.p, f.y + -1 * (j - f.y));
				if (j = c.Eb) m = j[0], j[0] = j[2], j[2] = m, j[0].y = f.y + -1 * (j[0].y - f.y), j[1].y = f
					.y + -1 * (j[1].y - f.y), j[2].y = f.y + -1 * (j[2].y - f.y);
				if (c.p.top >= d && c.p[P] <= e) g.p = c.p, g.Eb = c.Eb;
				else {
					g.p[P] > e && (g.p.top -= g.p[P] - e, Ra(g.p, e));
					if (g.p.top < d) Ra(g.p, g.p[P] + (d - g.p.top)), g.p.top = d;
					delete g.Eb
				}
			}
			e = i / 1.618;
			i = g.p;
			f = i[C] + e;
			e = i.top + e;
			i = [];
			for (d = 0; d < a.d[I]; d++) {
				c = a.d[d];
				j = Ox(c, b);
				0 < d && (e += j.Rg);
				m = f;
				o = e + j[Q] / 2;
				for (q = 0; q < c.pc[I]; q++) D = c.pc[q], Y = Px(D, b), 0 < q && (m += Y.Wk), y = o - Y[Q] / 2,
					i[v]({
						x: s[z](m),
						y: s[z](y),
						item: D
					}), m += Y[w];
				e += j[Q]
			}
			return {
				outline: g,
				Gs: {
					pc: i
				}
			}
		}

		function Ox(a, b) {
			for (var c = 0, d = 0, e = 0, f = 0; f < a.pc[I]; f++) var g = Px(a.pc[f], b),
				c = c + (g[w] + (0 < f ? g.Wk : 0)),
				d = s.max(d, g[Q]),
				e = s.max(e, g[Q] / 2 + g.Rg);
			return {
				width: c,
				height: d,
				Rg: e - d / 2
			}
		}

		function Px(a, b) {
			switch (a[F]) {
				case An:
					return {
						width: b ? b(a[A][x], a[A][zc])[w] : 0, height: a[A][zc][M], Rg: a[A][zc][M] / 3.236,
							Wk: a[A][zc][M] / 3.236
					};
				case dn:
					var c = a[A][hc];
					return {
						width: c, height: c, Rg: c, Wk: c
					}
			}
		};

		function Qx(a) {
			this.l = a;
			this.Sg = a.mj;
			this.Yk = ot(this.Sg, k)
		}
		V = Qx[K];
		V.gp = function(a) {
			var b = this.l,
				c = {
					d: []
				},
				d = l,
				e = 0,
				f = 1,
				g = b.e[I];
			uv(b) && (e = b.e[I] - 1, g = f = -1);
			for (; e != g; e += f) {
				var i = b.e[e];
				if (d != i.Ad) {
					var d = i.Ad,
						j = this.l.v[a].dj[d];
					/^[\s\xa0]*$/ [Za](j == l ? S : S + j) || this.xk(c, j)
				}
				if (i.c[a] && !i.c[a].ud) j = i.c[a].Xf, this.gi(c, j.lf, j[fb], k, i)
			}
			return c
		};
		V.Zn = function(a, b) {
			var c = {
				d: []
			};
			if (b.d) {
				b[J] && this.xk(c, b[J]);
				for (var d = 0; d < b.d[I]; d++) {
					var e = b.d[d];
					this.fu(c, e[J], e[nb])
				}
			} else b.Hk ? (this.xk(c, b.Hk), this.gi(c, b.lf, b[fb], k, a)) : b.lf ? this.gi(c, b.lf, b[fb],
				k, a, k) : this.gi(c, l, b[fb], n, a);
			return c
		};
		V.xk = function(a, b) {
			var c = Mx(b, this.Yk);
			a.d[v](c)
		};
		V.gi = function(a, b, c, d, e, f) {
			var g = W(f) ? f : n,
				f = this.l.dn,
				d = d ? this.Yk : this.Sg,
				c = c[qc](gd),
				e = f ? e[tb][tb] : l,
				b = g && W(b) ? Mx(b, this.Sg, l, l, e) : Mx(c[0], d, b, this.Sg, e);
			a.d[v](b);
			for (g = g ? 0 : 1; g < c[I]; g++) e = f ? U : l, b = Mx(c[g], d, l, l, e), a.d[v](b)
		};
		V.fu = function(a, b, c) {
			b && (b = Mx(c, this.Yk, b, this.Sg), a.d[v](b))
		};

		function Rx(a, b) {
			this.l = a;
			this.un = b;
			this.qk = new hs(0, a[w], a[Q], 0);
			this.bo = a.mj[M];
			if (a.N == Dl) {
				var c = a.ea.Hb;
				this.qd = new $(c.x, c.y)
			} else {
				var c = a.ta[0],
					c = W(c.V) ? c.V.u : s.min(c.sb, c.ob),
					d = a.Ka[0],
					d = W(d.V) ? d.V.u : s.max(d.sb, d.ob);
				this.qd = new $(c, d)
			}
		}
		V = Rx[K];
		V.Tq = function(a) {
			this.qk = a
		};
		V.eo = function(a, b) {
			var c = a.i,
				d = 1 + s[db](tv(a, b) / s[Ib](2));
			return new $(c.x + (c.x >= this.qd.x ? d : -d), c.y + (c.y <= this.qd.y ? -d : d))
		};
		V.Rs = function(a) {
			a = a.i.Wf || a.i;
			a = new $(a[C] + (a[C] < this.qd.x ? 0 : a[w]), a.top + (a.top < this.qd.y ? 0 : a[Q]));
			this.Zo(a);
			return a
		};
		V.Ss = function(a) {
			a = a.i[vc];
			a = new $(a[C] + a[w] > this.qd.x ? a[C] + a[w] : a[C], a.top < this.qd.y ? a.top : a.top + a[
				Q]);
			this.Zo(a);
			return a
		};
		V.Ts = function(a) {
			var b = xr(this.l.ea.Hb, lv(((a.Xc ? 45 : (a.ga + a.ca) / 2) / 180 - 0.5) * s.PI, this.l.ea.ka,
					this.l.ea.ua)),
				a = new $(b.x + a.Yc.x, b.y + a.Yc.y);
			this.ft(a);
			return a
		};
		V.Js = function(a, b) {
			var c = this.l.e[a],
				d = c[F];
			switch (this.l.N) {
				case T:
					switch (d) {
						case Pg:
						case hn:
							return this.Rs(c.c[b]);
						case Ak:
						case Cg:
							return this.eo(c.c[b], c);
						case wh:
							return this.Ss(c.c[b])
					}
					case rm:
					case oh:
						return this.eo(c.c[b], c);
					case Dl:
						return this.Ts(c)
			}
		};
		V.Zo = function(a) {
			var b = this.l.a;
			a.x = pr(a.x, b[C], b[R]);
			a.y = pr(a.y, b.top, b[P])
		};
		V.ft = function(a) {
			a.x = pr(a.x, 0, this.l[w]);
			a.y = pr(a.y, 0, this.l[Q])
		};
		V.Du = function(a) {
			return new $(a.x - 4 * this.l.ta[0].ag * this.bo, a.y - this.l.Ka[0].ag * this.bo)
		};
		V.xs = function(a) {
			var b = a[C],
				c = a[w],
				d = a.top,
				a = a[Q],
				e = d + a;
			return this.l[Qb] == Gj ? e > this.qd.y ? new $(b + c / 2, e - 0.1) : new $(b + c / 2, d +
				0.1) : b < this.qd.x ? new $(b + 0.1, d + a / 2) : new $(b + c - 0.1, d + a / 2)
		};
		V.ys = function(a) {
			var b = xr(this.l.ea.Hb, lv(((a.Xc ? 45 : (a.ga + a.ca) / 2) / 180 - 0.5) * s.PI, this.l.ea.ka -
				0.1, this.l.ea.ua - 0.1));
			return new $(b.x + a.Yc.x, b.y + a.Yc.y)
		};
		V.Ks = function(a, b) {
			var c = this.l.e[a];
			if (this.l.N == Dl) return this.ys(c);
			var d = c[F],
				c = c.c[b].i;
			return d == Pg || d == hn || d == wh ? this.xs(c.Wf || c[vc] || c) : new $(c.x, c.y)
		};
		V.Mh = function(a, b) {
			var c = this.l.e[a],
				d = this.l.N == Dl ? c.Xf : c.c[b].Xf,
				e = this.Js(a, b),
				f = this.Ks(a, b);
			return Nx(this.un.Zn(c, d), this.l.tc, k, e, this.qk, f)
		};
		V.As = function(a, b) {
			var c = this.un.gp(a);
			return Nx(c, this.l.tc, n, this.Du(b), this.qk, b)
		};

		function Sx(a) {
			this.ge = a
		}
		V = Sx[K];
		V.Co = function(a, b, c) {
			switch (a.ae) {
				case yi:
					this.Yl(a, b, c);
					break;
				case Ei:
					this.Mw(a, b, c)
			}
		};
		V.eg = function(a, b, c) {
			a.e = a.e || {};
			a = a.e;
			a[b] = a[b] || {};
			b = a[b];
			b.c = b.c || {};
			b = b.c;
			b[c] = b[c] || {};
			return b[c]
		};
		V.Dh = function(a, b) {
			a.e = a.e || {};
			var c = a.e;
			c[b] = c[b] || {};
			return c[b]
		};
		V.Bs = function(a, b) {
			a.v = a.v || {};
			var c = a.v;
			c[b] = c[b] || {};
			return c[b]
		};
		V.Im = function(a, b) {
			a.f = a.f || {};
			var c = a.f;
			c.kc = c.kc || {};
			c = c.kc;
			c[b] = c[b] || {};
			return c[b]
		};
		V.Yl = function(a, b, c) {
			for (var d = b[kb].Vn(), e = 0; e < d[I]; ++e) {
				var f = a.yj[d[e].column];
				if (W(f)) {
					var g = a.df[d[e].row];
					this.Sh(a, f, g, c)
				}
			}
			g = b[kb].Wn();
			for (e = 0; e < g[I]; ++e) f = a.yj[g[e]], this.Fs(a, f, c);
			d = b[kb].Bk();
			for (e = 0; e < d[I]; ++e) g = d[e], a.N == oh ? (f = 0, g = a.df[g], this.Sh(a, f, g, c)) :
				this.Es(a, a.df[g], c);
			e = b.s.na;
			f = b.s.Xa;
			g = b.X.na;
			d = b.X.Xa;
			W(f) && this.Vj(a, e, f, c);
			if (W(d)) this.eg(c, g, d).K = this.ge.Mh(g, d);
			e = b.f.s.lc;
			W(e) && this.Ds(a, e, c);
			e = b.s.Bb;
			W(e) && this.Cs(a, e, c);
			a = b.X.Bb;
			if (W(a) && (c = this.Bs(c, a), b[gc][fc])) c.kg =
				this.ge.As(a, b[gc][fc])
		};
		var Tx = [0.25, 0.1, 0.05],
			Ux = [0.3, 0.1, 0.05],
			Vx = [0.3, 0.15, 0.05];
		V = Sx[K];
		V.Vj = function(a, b, c, d) {
			var e = a.e[b],
				f = e.c[c];
			if (f && !f.ud && f.i && (!qv(e) || 0 != e[dd] || rv(f, e))) {
				a = e[F] == Pg ? Vx : Tx;
				d = this.eg(d, b, c);
				d.xc = {};
				b = d.xc;
				b.Ca = [];
				for (c = 0; c < a[I]; c++) {
					var g = new wt({
						fill: U,
						stroke: Ug,
						vd: a[c],
						Qa: 1
					});
					b.Ca[v]({
						b: g
					})
				}
				switch (e[F]) {
					case Pg:
					case hn:
					case wh:
						e = f.i.Wf || f.i[vc] || f.i;
						f = new js(e[C], e.top, e[w], e[Q]);
						for (c = 0; c < a[I]; c++) e = b.Ca[c].b.H, b.Ca[c].rect = new js(f[C] - e / 2, f
							.top - e / 2, f[w] + e, f[Q] + e), xa(f, f[C] - e), f.top -= e, oa(f, f[w] +
							2 * e), Ua(f, f[Q] + 2 * e);
						break;
					case Ak:
					case Cg:
					case rm:
					case sh:
						d.gf =
							k;
						b.x = f.i.x;
						b.y = f.i.y;
						d.qb ? (e = d.qb, f = e.Xb + e.b.H / 2) : f = tv(f, e);
						for (c = 0; c < a[I]; c++) e = b.Ca[c].b.H, b.Ca[c].Xb = f + e / 2, f += e
				}
			}
		};
		V.Ds = function(a, b, c) {
			var o;
			var d = a.e[b],
				e;
			if (qv(d) && 0 < d[dd]) {
				e = this.Dh(c, b);
				e.xc = {};
				e = e.xc;
				e.Ca = [];
				var f;
				f = d[F] == Cg ? a.Vc ? wv(d) : vv(d, n) : vv(d, a.Qe);
				f = f.yn();
				for (var g = d.Ha.H / 2, i = 0; i < Ux[I]; i++) {
					var j = new wt({
							fill: U,
							stroke: Ug,
							vd: Ux[i],
							Qa: 1
						}),
						m = Dx(f, g + j.H / 2);
					e.Ca[v]({
						b: j,
						path: m
					});
					g += j.H
				}
			}
			o = (e = (e = c.e) && e[b]) && e.c, e = o;
			for (f = 0; f < d.c[I]; ++f) g = d.c[f], !g || g.ud || (rv(g, d) || e && e[f] && e[f].gf) &&
				this.Vj(a, b, f, c)
		};
		V.Cs = function(a, b, c) {
			for (var d = a.e, e = 0; e < d[I]; e++) this.Vj(a, e, b, c)
		};
		V.Sh = function(a, b, c, d) {
			var e = a.e[b],
				f = e.c[c];
			if (f && !f.ud && f.i && (!qv(e) || 0 != e[dd] || rv(f, e))) {
				var g = pv(f, e),
					b = this.eg(d, b, c);
				b.qb = {};
				c = b.qb;
				a = At(a.bj, a.cj);
				d = 1;
				W(a) || (a = So, d = 0);
				switch (e[F]) {
					case Pg:
					case hn:
					case wh:
						c.b = xt[Dc]();
						c.b.gc(a);
						e[F] == wh && f.dm.O == a && c.b.gc(g.O);
						c.b.bg(d);
						c.b.ee(1);
						e = f.i.Wf || f.i[vc] || f.i;
						g = g.H;
						f = c.b.H;
						c.rect = new js(e[C] + g / 2 + 1.5 + f / 2, e.top + g / 2 + 1.5 + f / 2, e[w] - (g +
							3 + f), e[Q] - (g + 3 + f));
						(0 >= c[vc][w] || 0 >= c[vc][Q]) && delete b.qb;
						break;
					case Ak:
					case Cg:
					case rm:
					case sh:
						b.gf = k, c.x = f.i.x, c.y = f.i.y,
							c.b = new wt({
								fill: a,
								rb: d,
								stroke: g.O,
								Qa: 1
							}), c.Xb = tv(f, e) + 1.5 + c.b.H / 2
				}
			}
		};
		V.Fs = function(a, b, c) {
			var d = a.e[b];
			if ((d[F] == Ak || d[F] == Cg || d[F] == rm) && 0 < d[dd]) {
				var e = this.Dh(c, b);
				e.qb = {};
				var e = e.qb,
					f;
				f = d[F] == Cg ? a.Vc ? wv(d) : vv(d, n) : vv(d, a.Qe);
				f = f.yn();
				e.b = new wt({
					stroke: d.Ha.Jb,
					Qa: s.min(1, d.Ha.H / 2)
				});
				e.path = Dx(f, -(d.Ha.H / 2 + 2 + e.b.H / 2))
			}
			for (e = 0; e < d.c[I]; ++e) f = d.c[e], !f || f.ud || rv(f, d) && this.Sh(a, b, e, c)
		};
		V.Es = function(a, b, c) {
			for (var d = a.e, e = 0; e < d[I]; ++e) this.Sh(a, e, b, c)
		};
		V.Mw = function(a, b, c) {
			var d = b.s.na,
				e = b.s.Xa,
				f = b.X.na,
				g = b.X.Xa,
				i = l;
			if (W(e)) {
				i = this.eg(c, d, e);
				i.gf = k;
				e = this.Im(c, d);
				e.ba = {
					B: a.im
				};
				for (e = 0; e < a.e[I]; e++)
					if (e != d) {
						var j = this.Dh(c, e),
							m = a.e[e];
						j.Ha = m.Ha[Dc]();
						j.Ha.bg(0.3)
					}
			}
			a.f.pb && this.ge.Tq(new hs(0, a.f.pb[C], a[Q], 0));
			if (W(g)) i.K = this.ge.Mh(f, g);
			if (a.f && a.f[fc] == gk && W(b.f.s.lc)) {
				b = b.f.s.lc;
				e = this.Im(c, b);
				e.ba = {
					B: a.im
				};
				for (var i = a.e[b].c, o, d = i[I] - 1; 0 <= d; d--)
					if ((f = i[d]) && !f.ud && f.i && (new hs(a.a.top, a.a[R], a.a[P], a.a[C]))[Tc](new $(f
							.i.x, f.i.y))) {
						o = d;
						break
					} if (W(o) &&
					(i = this.eg(c, b, o), i.gf = k, a.Ic != U)) i.K = this.ge.Mh(b, o);
				for (e = 0; e < a.e[I]; e++)
					if (e != b) j = this.Dh(c, e), m = a.e[e], j.Ha = m.Ha[Dc](), j.Ha.bg(0.3)
			}
		};

		function Wx(a) {
			this.Jo = ot(a, k);
			this.rl = sq(a);
			va(this.rl, xd);
			Na(this.rl, a[M] - 2)
		}
		Wx[K].Zn = function(a, b) {
			var c = [];
			if (!a.qh) {
				var d = Mx(a[J], this.Jo);
				c[v](d)
			}
			d = Mx(b[fb], this.Jo);
			c[v](d);
			d = Mx(b.Hk, this.rl);
			c[v](d);
			return {
				d: c
			}
		};
		Wx[K].gp = function() {
			return {
				d: []
			}
		};

		function Xx(a) {
			this.ge = a
		}
		V = Xx[K];
		V.Co = function(a, b, c) {
			this.Yl(a, b, c)
		};
		V.Kj = function(a, b) {
			a.e = a.e || {};
			var c = a.e;
			c[b] = c[b] || {};
			return c[b]
		};
		V.Yl = function(a, b, c) {
			for (var d = b[kb].Bk(), e = 0; e < d[I]; ++e) this.Ys(a, d[e], c);
			d = b.s.na;
			W(d) && this.lo(a, d, c);
			e = b.X.na;
			if (W(e)) {
				var f = this.Kj(c, e);
				if (a.Ic != U) f.K = this.ge.Mh(e, l);
				if (a.f[fc] == gk) c.Bc = px(a.Bc, d)
			}
			b = b.f.s.lc;
			if (W(b) && (this.lo(a, b, c), a.f[fc] == gk)) c.Bc = px(a.Bc, b)
		};
		V.lo = function(a, b, c) {
			var d = a.ea,
				a = a.e[b],
				c = this.Kj(c, b);
			c.xc = {};
			b = c.xc;
			b.b = new wt({
				stroke: a.b.O,
				Qa: 6.5,
				vd: 0.3
			});
			b.bb = new $(d.Hb.x + a.Yc.x, d.Hb.y + a.Yc.y);
			b.ga = a.ga;
			b.ca = a.ca;
			b.Xc = a.Xc;
			var e = c.qb;
			e ? (c = e.ka + e.b.H / 2, d = e.ua + e.b.H / 2) : (c = d.ka + a.b.H / 2, d = d.ua + a.b.H / 2);
			b.ka = c + b.b.H / 2;
			b.ua = d + b.b.H / 2;
			d = sr(b.ga - 90);
			c = sr(b.ca - 90);
			b.Ba = kq(b.bb, lv(d, b.ka, b.ua));
			b.Ib = kq(b.bb, lv(c, b.ka, b.ua));
			if (e = a.C) b.C = b.C || {}, b.C.b = yt(e.b.O, 0.3), b.C.bb = b.bb[Dc](), b.C.ga = e.ga, b.C
				.ca = e.ca, b.C.ka = b.ka + b.b.H / 2, b.C.ua = b.ua + b.b.H / 2, d =
				sr(b.C.ga - 90), c = sr(b.C.ca - 90), b.C.Ba = kq(b.C.bb, lv(d, b.C.ka, b.C.ua)), b.C.Ib =
				kq(b.C.bb, lv(c, b.C.ka, b.C.ua));
			b.xd = a.xd;
			b.ce = a.ce;
			if (b.xd || b.ce) b.sh = yt(a.sh.O, 0.3), b.Pr = b.xd ? d : c, a = function(a, b) {
				return kq(a.bb, lv(a.Pr, a.ka + b * a.b.H / 2, a.ua + b * a.b.H / 2))
			}, b.hf = a(b, -1), b.Ch = a(b, 1)
		};
		V.Ys = function(a, b, c) {
			var d = a.ea;
			if (!(0 < d.ej)) a = a.e[b], b = this.Kj(c, b), b.qb = {}, b = b.qb, b.b = zt(a.b.O, 2), b.bb =
				new $(d.Hb.x + a.Yc.x, d.Hb.y + a.Yc.y), b.ga = a.ga, b.ca = a.ca, b.Xc = a.Xc, a = a.b.H /
				2 + 2.5 + b.b.H / 2, b.ka = d.ka + a, b.ua = d.ua + a, d = sr(b.ca - 90), b.Ba = kq(b.bb,
					lv(sr(b.ga - 90), b.ka, b.ua)), b.Ib = kq(b.bb, lv(d, b.ka, b.ua))
		};

		function Yx(a, b) {
			this.ue = {};
			W(b.f.vf) && this.Yt(a, b);
			var c = new Rx(a, this.Zt(a)),
				d = l,
				d = a.N == Dl ? new Xx(c) : new Sx(c);
			d.Co(a, b, this.ue)
		}
		Yx[K].Zt = function(a) {
			return a.ae == Ei ? new Wx(a.mj) : new Qx(a)
		};
		Yx[K].Yt = function(a, b) {
			this.ue.f = this.ue.f || {};
			var c = a.f,
				d = b.f.vf;
			this.ue.f.kc = c.ha[d];
			var e = d + 1 + xe + c.ha[I],
				f = c.qg.ok,
				g = 0 < d,
				c = c.qg.mk,
				d = d < a.f.ha[I] - 1;
			this.ue.f.qg = {
				ok: {
					b: g ? f.cd.fd : f.cd.ei,
					fd: g
				},
				mk: {
					b: d ? c.cd.fd : c.cd.ei,
					fd: d
				},
				nk: {
					text: e,
					d: {
						"0": {
							text: e
						}
					}
				}
			}
		};

		function Zx(a) {
			this.sc = new Ss(50);
			this.aw = a;
			this.Me = p;
			this.Nf = 0;
			Qr(this.sc, Jn, Z(this.Gl, this));
			this.sc[O]()
		}
		xp(Zx, zr);
		Zx[K].Da = function(a) {
			this.Me = s.min(this.Me, a)
		};
		Zx[K].sw = function() {
			this.Me = p
		};
		Zx[K].Gl = function() {
			var a = wp();
			this.Me -= a - this.Nf;
			this.Nf = a;
			if (0 >= this.Me) this.aw(), this.Me = p
		};
		Zx[K].lb = function() {
			this.sc.cc();
			this.sc = l
		};

		function $x(a, b, c) {
			this.n = this.l = l;
			this.Gd = a;
			this.St = b;
			this.ya = new Zx(c);
			this.Tt()
		}
		xp($x, zr);
		V = $x[K];
		V.Wt = function(a) {
			this.l = a;
			return this
		};
		V.st = function(a) {
			this.n = a;
			return this
		};
		V.ot = function() {
			this.ya.sw()
		};
		V.cc = function() {
			this.ya.cc();
			this.ya = l
		};
		V.hp = function(a) {
			this.St[v](a)
		};
		V.jv = function(a) {
			this.hp({
				type: Rh,
				entityName: a.va.ds
			});
			this.ya.Da(0)
		};
		V.hv = function(a) {
			if (this.l.jc == xh) {
				var b = this.l.Ic,
					a = new $(a.dd[Wb], a.dd[Xb]);
				Ia(this.n[gc], a);
				a = this.uk(a);
				this.n.s.Bb = a;
				if (b == Hj) this.n.X.Bb = a;
				this.ya.Da(50)
			}
		};
		V.iv = function() {
			this.l.jc == xh && (this.Do(), this.ya.Da(50))
		};
		V.tp = function(a) {
			var b = this.l;
			b.jc == xh && (a = this.uk(new $(a.dd[Wb], a.dd[Xb])), W(a) && (this.n[kb].pk(b.v[a].wc, b.vh ==
				Mm), this.ya.Da(50)))
		};
		V.ov = function(a) {
			this.n.f.s.lc = a.va.Fh;
			this.ya.Da(50)
		};
		V.pv = function() {
			this.n.f.s.lc = l;
			this.ya.Da(250)
		};
		V.nv = function(a) {
			this.So(a.va.Fh);
			this.ya.Da(50)
		};
		V.qv = function(a) {
			if (!W(this.n.f.vf)) this.n.f.vf = 0;
			this.n.f.vf += a.va.cs;
			this.ya.Da(50)
		};
		V.tv = function(a) {
			var b = this.l,
				c = a.va.$;
			this.n.s.na = c;
			var d = b.Ic;
			if (d == Hj) this.n.X.na = c;
			if (b.ae == Ei) {
				for (var b = b.e[c].c, c = Np(b, function(a) {
						return W(a)
					}), a = a.dd[Wb], e = 0; e < c[I] && c[e].i.x < a; e++);
				var f = 0 == e ? 0 : l,
					f = e == c[I] ? c[I] - 1 : l;
				ip(f) && (a = a < ur(c[e - 1].i.x, c[e].i.x) ? e - 1 : e, f = Lp(b, c[a]));
				this.n.s.Xa = f;
				if (d == Hj) this.n.X.Xa = f
			}
			this.ya.Da(50)
		};
		V.uv = function() {
			var a = this.l;
			this.jo();
			if (a.ae == Ei && (this.n.s.Xa = l, this.l.Ic == Hj)) this.n.X.Xa = l;
			this.ya.Da(250)
		};
		V.sv = function(a) {
			this.So(a.va.$);
			this.ya.Da(50)
		};
		V.rv = function(a) {
			this.hp({
				type: cm,
				index: a.va.Fh
			});
			this.ya.Da(0)
		};
		V.lv = function(a) {
			this.n.s.na = a.va.$;
			this.n.s.Xa = a.va.Sa;
			if (this.l.Ic == Hj) this.n.X.Xa = a.va.Sa, this.n.X.na = a.va.$;
			this.ya.Da(50)
		};
		V.mv = function() {
			this.Gk();
			this.ya.Da(250)
		};
		V.kv = function(a) {
			var b = this.l,
				c = b.vh == Mm,
				d = b.e[a.va.$];
			b.N == oh ? (a = d.c[a.va.Sa].wc, this.n[kb].pk(a, c)) : (a = a.va.Sa, this.n[kb].En(a, d.wc,
				c));
			this.ya.Da(50)
		};
		V.fv = function(a) {
			this.n.Ob.s.Md = a.va.Sa;
			this.n.Ob.s.w = this.Un(a.va.$);
			this.Gk();
			this.ya.Da(50)
		};
		V.gv = function() {
			this.n.Ob.s.Md = l;
			this.n.Ob.s.w = l;
			this.ya.Da(250)
		};
		V.ev = function(a) {
			for (var b = this.l.vh == Mm, c = a.va.Sa, d = this.Un(a.va.$), e = 0; e < d[I]; ++e) this.n[kb]
				.En(c, d[e], b);
			a.dd[tc]();
			this.ya.Da(50)
		};
		V.xv = function(a) {
			var b = this.l.Ic;
			switch (this.l.jc) {
				case ri:
					this.n.s.Xa = a.va.Sa;
					this.n.s.na = a.va.$;
					if (b == Hj) this.n.X.Xa = a.va.Sa, this.n.X.na = a.va.$;
					break;
				case ym:
					this.n.s.na = a.va.$;
					if (b == Hj) this.n.X.na = a.va.$;
					break;
				case xh:
					if (a = new $(a.dd[Wb], a.dd[Xb]), Ia(this.n[gc], a), a = this.uk(a), this.n.s.Bb = a,
						b == Hj) this.n.X.Bb = a
			}
			this.ya.Da(50)
		};
		V.yv = function() {
			switch (this.l.jc) {
				case ri:
					this.Gk();
					break;
				case ym:
					this.jo();
					break;
				case xh:
					this.Do()
			}
			this.ya.Da(750)
		};
		V.wv = function(a) {
			this.tp(a)
		};
		V.vv = function(a) {
			a.dd[tc]()
		};
		V.Gk = function() {
			this.n.s.na = l;
			this.n.s.Xa = l;
			if (this.l.Ic == Hj) this.n.X.Xa = l, this.n.X.na = l
		};
		V.jo = function() {
			this.n.s.na = l;
			if (this.l.Ic == Hj) this.n.X.na = l
		};
		V.Do = function() {
			Ia(this.n[gc], l);
			this.n.s.Bb = l;
			if (this.l.Ic == Hj) this.n.X.Bb = l
		};
		V.Un = function(a) {
			var b = this.l,
				c = [];
			if (W(a)) c = b.e[a].w.annotation;
			else
				for (a = 0; a < b.Zc[I]; ++a) Zp(c, b.Zc[a].w.annotation);
			return c
		};
		V.Tt = function() {
			var a = Z(function(a, c) {
				Qr(this.Gd, a, Z(c, this))
			}, this);
			a(Lh, this.jv);
			a(zh, this.hv);
			a(Ah, this.iv);
			a(yh, this.tp);
			a(uk, this.ov);
			a(vk, this.pv);
			a(tk, this.nv);
			a(xk, this.qv);
			a(wm, this.tv);
			a(xm, this.uv);
			a(vm, this.sv);
			a(bm, this.rv);
			a(ti, this.lv);
			a(ui, this.mv);
			a(si, this.kv);
			a(ug, this.fv);
			a(vg, this.gv);
			a(tg, this.ev);
			a(bo, this.xv);
			a(co, this.yv);
			a($n, this.wv);
			a(nn, this.vv)
		};
		V.uk = function(a) {
			var b = this.l,
				c = b.a,
				d = a.x,
				e = a.y;
			if (d <= c[C] || d >= c[R] || e <= c.top || e >= c[P]) return l;
			b = b.v;
			for (c = 0; c < b[I]; c++)
				if ((d = b[c].Ls) && d[Tc](a)) return c;
			return l
		};
		V.So = function(a) {
			var b = this.l,
				c = b.vh == Mm,
				a = b.e[a].wc;
			b.N == Dl ? this.n[kb].pk(a, c) : this.n[kb].Zs(a, c)
		};

		function ay(a, b) {
			ov[N](this, a, b);
			this.di = this.wj = l
		}
		xp(ay, ov);
		V = ay[K];
		V.Mn = function(a, b) {
			var c = this.g;
			if (1 > a.e[I]) return n;
			this.wj = b;
			for (var d = 0; d < a.e[I] && 180 > a.e[d].ca;) this.Pg(a.e[d]), d += 1;
			a.ea.zj && this.Pg(a.ea.zj);
			for (var e = a.e[I] - 1; e >= d; e--) this.Pg(a.e[e]);
			if (a.Bc) this.di = c.ja(), this.Yn(a.Bc), c[t](this.wj, this.di);
			return k
		};
		V.Pg = function(a) {
			if (a.B) {
				var b = this.g.ja(),
					c = this.Ia,
					d = c.ea.ka,
					e = c.ea.ua,
					f = c.ea.Hb,
					g = a.Yc;
				if (a.C) {
					var i = c.ea.ej,
						j = a.C,
						m = new Et;
					m[rb](g.x + j.Ba.x, g.y + j.Ba.y);
					m.G(g.x + j.Ba.x, g.y + j.Ba.y + i);
					m.jb(g.x + f.x, g.y + f.y + i, d, e, j.ga, j.ca, k);
					m.G(g.x + j.Ib.x, g.y + j.Ib.y);
					m.jb(g.x + f.x, g.y + f.y, d, e, j.ca, j.ga, n);
					this.g.xa(m, j.b, b)
				}
				if (a.xd || a.ce) i = c.ea.ej, c = new Et, c[rb](g.x + f.x, g.y + f.y), c.G(g.x + f.x, g.y +
					f.y + i), a.ce && (c.G(g.x + a.Ib.x, g.y + a.Ib.y + i), c.G(g.x + a.Ib.x, g.y + a.Ib
					.y)), a.xd && (c.G(g.x + a.Ba.x, g.y + a.Ba.y + i), c.G(g.x + a.Ba.x,
					g.y + a.Ba.y)), this.g.xa(c, a.sh, b);
				a.Xc ? 0 == a.$f && 0 == a.Ye ? this.g.um(f.x, f.y, d, e, a.b, b) : (c = new Et, c[rb](f.x,
					f.y - e), c.jb(f.x, f.y, d, e, 0, 180, k), c.jb(f.x, f.y, d, e, 180, 360, k), c[
					rb](f.x, f.y - a.Ye), c.jb(f.x, f.y, a.$f, a.Ye, 360, 180, n), c.jb(f.x, f.y, a
					.$f, a.Ye, 180, 0, n), c[Ac](), this.g.xa(c, a.b, b)) : (c = new Et, c[rb](g.x + a
					.jm.x, g.y + a.jm.y), c.G(g.x + a.Ba.x, g.y + a.Ba.y), c.jb(g.x + f.x, g.y + f
					.y, d, e, a.ga, a.ca, k), c.G(g.x + a.km.x, g.y + a.km.y), c.jb(g.x + f.x, g.y +
					f.y, a.$f, a.Ye, a.ca, a.ga, n), this.g.xa(c, a.b, b));
				a.qb && this.wm(a.qb, b);
				if (d =
					a.xc) {
					d.C && (e = new Et, e[rb](d.C.Ba.x, d.C.Ba.y), e.G(d.C.Ba.x, d.C.Ba.y + i), e.jb(d.C.bb
						.x, d.C.bb.y + i, d.C.ka, d.C.ua, d.C.ga, d.C.ca, k), e.G(d.C.Ib.x, d.C.Ib
						.y), e.jb(d.C.bb.x, d.C.bb.y, d.C.ka, d.C.ua, d.C.ca, d.C.ga, n), this.g.xa(
						e, d.C.b, b));
					if (d.xd || d.ce) e = new Et, e[rb](d.hf.x, d.hf.y), e.G(d.Ch.x, d.Ch.y), e.G(d.Ch.x, d
						.Ch.y + i), e.G(d.hf.x, d.hf.y + i), e.G(d.hf.x, d.hf.y), this.g.xa(e, d.sh, b);
					this.wm(d, b)
				}
				a.nj && this.g.rh(a[x], a.oj.x + g.x, a.oj.y + g.y, a.Bh[w], fn, fn, a.t, b);
				g = Hu([Vm, a[ic]]);
				b = b.q();
				this.yc(this.wj, g, b);
				a.K && this.wh(a.K,
					a[ic]);
				this.Ia.z && a.z && this.zc(b, {
					click: vm,
					mouseover: wm,
					mouseout: xm
				}, {
					$: a[ic]
				})
			}
		};
		V.wm = function(a, b) {
			if (a.Xc) this.g.um(a.bb.x, a.bb.y, a.ka, a.ua, a.b, b);
			else {
				var c = new Et;
				c[rb](a.Ba.x, a.Ba.y);
				c.jb(a.bb.x, a.bb.y, a.ka, a.ua, a.ga, a.ca, k);
				this.g.xa(c, a.b, b)
			}
		};
		V.Yn = function(a) {
			for (var b = Z(this.yd, this), c = this.g, d = Z(this.zc, this), e = this.di, f = 0; f < a[
				I]; ++f) {
				var g = a[f],
					i = c.ja(),
					j = c.ja(),
					m = new Et;
				m[rb](g.Kb.x + 0.5, g.Kb.y + 0.5);
				m.G(g.cn + 0.5, g.Kb.y + 0.5);
				m.G(g.cn + 0.5, g.Lc.y + 0.5);
				m.G(g.Lc.x + 0.5, g.Lc.y + 0.5);
				c.xa(m, g.Ha, j);
				c.Zj(g.Kb.x + 0.5, g.Kb.y + 0.5, g.bn, g.vr, j);
				b(g.ef, i);
				b(g.ff, i);
				c[t](e, i);
				c[t](e, j);
				g.z && (g = {
					Fh: g[ic]
				}, i = i.q(), d(i, {
					click: tk,
					mouseover: uk,
					mouseout: vk
				}, g))
			}
		};
		V.Xn = function(a, b) {
			if (!lu(b.Bc, this.se.Bc)) {
				this.g.Ng(this.di);
				var c = new ju(2);
				c.Lb(0, a.Bc || {});
				c.Lb(1, b.Bc || {});
				this.Yn(c[ad]())
			}
			this.il(a, this.se);
			this.hl(a, b)
		};
		V.il = function(a, b) {
			for (var c in b.e) b.e[c].K && this.Mk(ea(c)), this.Pg(a.e[c])
		};
		V.hl = function(a, b) {
			for (var c in b.e) {
				var d = a.e[c],
					e = new ju(2);
				e.Lb(0, d);
				e.Lb(1, b.e[c]);
				this.Pg(e[ad]())
			}
		};

		function by(a, b, c) {
			this.Bx = b;
			W(c) && Qr(this, Yl, c);
			this.k = this.l = l;
			this.wb = a;
			this.kd = this.Rd = this.Cg = this.n = this.zg = l;
			this.Nk = [];
			this.Gd = new Rs;
			a = Z(this.ji, this, k);
			this.Pd = new $x(this.Gd, this.Nk, a)
		}
		xp(by, Rs);
		V = by[K];
		V.Zk = function() {
			return this.Rd
		};
		V.Gg = function() {
			return this.l
		};
		V.draw = function(a, b, c) {
			this.Pd.ot();
			b.isStacked && b.vAxis && b.vAxis.baseline && h(r(
				"Cannot set a non-zero base-line for a stacked chart"));
			var d = b.theme || [];
			jp(d) || (d = [d]);
			for (var b = [b], e = 0; e < d[I]; ++e) {
				var f;
				if (np(d[e])) {
					f = d[e];
					if (!dx) {
						var g = {
							colors: [{
								color: Md,
								dark: Ed,
								light: Rd
							}, {
								color: Id,
								dark: Fd,
								light: Pd
							}, {
								color: Ld,
								dark: Dd,
								light: Td
							}, {
								color: Cd,
								dark: zd,
								light: Kd
							}, {
								color: Qd,
								dark: Jd,
								light: Od
							}, {
								color: Bd,
								dark: yd,
								light: Gd
							}],
							backgroundColor: {
								gradient: {
									color1: Ad,
									color2: wd,
									x1: De,
									y1: De,
									x2: Ke,
									y2: Ke
								}
							},
							titleTextStyle: {
								color: So
							},
							hAxis: {
								textStyle: {
									color: So
								},
								titleTextStyle: {
									color: So
								}
							},
							vAxis: {
								textStyle: {
									color: So
								},
								titleTextStyle: {
									color: So
								}
							},
							legend: {
								textStyle: {
									color: So
								}
							},
							axisBackgroundColor: {
								stroke: Nd,
								fill: U
							},
							areaOpacity: 0.8
						};
						cx.classic = g;
						g = {
							titlePosition: Pj,
							axisTitlesPosition: Pj,
							legend: {
								position: Pj
							},
							chartArea: {
								width: Ke,
								height: Ke
							},
							vAxis: {
								textPosition: Pj
							},
							hAxis: {
								textPosition: Pj
							}
						};
						cx.maximized = g;
						g = {
							enableInteractivity: n,
							legend: {
								position: U
							},
							seriesType: Cg,
							lineWidth: 1.6,
							chartArea: {
								width: Ke,
								height: Ke
							},
							vAxis: {
								textPosition: U,
								gridlines: {
									color: U
								},
								baselineColor: U
							},
							hAxis: {
								textPosition: U,
								gridlines: {
									color: U
								},
								baselineColor: U,
								type: Bh
							}
						};
						cx.sparkline = g;
						dx = k
					}
					f = cx[f]
				} else mp(d[e]) ? f = d[e] : h(r("Theme should be a theme name or an options object."));
				b[v](f)
			}
			b[v](Gu);
			this.k = new Nt(b);
			this.vn = this.k.Uk(To) || this.wb[kc] || 400;
			this.Fg = this.k.Uk(Bj) || this.wb[Mc] || 200;
			d = new lq(this.vn, this.Fg);
			if (W(this.Rd)) this.Rd.tt(d);
			else try {
				this.Rd = new au(this.wb, d)
			} catch (i) {
				h(r("Your browser does not support charts"))
			}
			this.n = new Kx(c);
			this.Pd.st(this.n);
			this.jj = a;
			this.Rd.Og(Z(this.pt,
				this))
		};
		V.pt = function(a) {
			var b;
			this.kd ? (b = this.kd.Jn, this.tk()) : b = this.l;
			var c = (new sx(this.jj, this.k, Z(a.Ln, a), this.vn, this.Fg)).Gg();
			this.zg = c.N == Dl ? new ay(a, this.Gd) : new xv(a, this.Gd);
			var d = this.k;
			(a = d.da(ng, 0)) ? (d = d.ia(og, fu, Dk), d = gu(d), a = {
				duration: a,
				ws: d
			}) : a = l;
			a && b && b.N == c.N && b[w] == c[w] && b[Q] == c[Q] && b.a.top == c.a.top && b.a[P] == c.a[
				P] && b.a[C] == c.a[C] && b.a[R] == c.a[R] ? (this.l = l, d = wp(), this.kd = {
					zx: b,
					ns: c,
					ms: new tx(b, c),
					Jn: b,
					startTime: d,
					ls: d + a.duration,
					Kn: 0,
					yk: new Ss(10),
					ks: a.ws,
					Hn: n
				}, this.Qn(), Qr(this.kd.yk, Jn,
					Z(this.Qn, this)), this.kd.yk[O]()) : (this.l = c, this.In());
			this[ub]({
				type: Yl
			})
		};
		V.clearChart = function() {
			this.kd && this.tk();
			this.Pd.cc();
			Xr(this.Gd);
			this.Rd.cc();
			this.Rd = l;
			Xr(this)
		};
		V.setSelection = function(a) {
			var b = this.yo();
			this.n[kb][Nb](a);
			this.ji(n);
			this.xo(b)
		};
		V.getSelection = function() {
			return this.Cg[kb][lc]()
		};
		V.ji = function(a) {
			this.Rd.Og(Z(this.Jw, this, a))
		};
		V.Jw = function(a) {
			var b = [];
			if (!this.n.Od(this.Cg)) this.zg.Rt(this.l, (new Yx(this.l, this.n)).ue), a && (b = this.yo()),
				this.Cg = this.n[Dc]();
			a && (b = Xp(this.Nk, b), Vp(this.Nk), this.xo(b))
		};
		V.yo = function() {
			var a = this.n,
				b = this.Cg,
				c = l,
				d = [],
				e = a.s,
				f = b.s;
			if (e.na != f.na || e.Xa != f.Xa) W(f.na) && d[v](this.li(ll, f.na, f.Xa)), W(e.na) && d[v](this
				.li(ml, e.na, e.Xa));
			if (e.Bb != f.Bb) {
				if (W(f.Bb)) c = f = f.Bb, d[v]({
					type: ll,
					row: c,
					column: l
				});
				if (W(e.Bb)) c = f = e.Bb, d[v]({
					type: ml,
					row: c,
					column: l
				})
			}
			e = a.Ob.s;
			f = b.Ob.s;
			if (e.Md != f.Md || !eq(e.w, f.w)) {
				if (W(f.Md) || f.w) c = f.Md, Mp(f.w, function(a) {
					d[v]({
						type: ll,
						row: c,
						column: a
					})
				});
				if (W(e.Md) || e.w) c = e.Md, Mp(e.w, function(a) {
					d[v]({
						type: ml,
						row: c,
						column: a
					})
				})
			}
			e = a.f.s;
			f = b.f.s;
			e.lc != f.lc &&
				(W(f.lc) && d[v](this.li(ll, f.lc, l)), W(e.lc) && d[v](this.li(ml, e.lc, l)));
			a[kb].Od(b[kb]) || d[v]({
				type: tm
			});
			return d
		};
		V.li = function(a, b, c) {
			var d = this.l,
				b = d.e[b];
			d.N == Dl ? (c = b.wc, d = l) : (c = d.N == oh ? b.c[c].wc : c, d = b.wc);
			return {
				type: a,
				row: c,
				column: d
			}
		};
		V.xo = function(a) {
			for (var b = 0; b < a[I]; ++b) this[ub](a[b])
		};
		V.In = function() {
			this.zg.drawChart(this.l, (new Yx(this.l, this.n)).ue);
			this.Cg = this.n[Dc]();
			this.Pd.Wt(this.l)
		};
		V.Qn = function() {
			var a = this.kd;
			if (a.Hn) this.tk(), this.l = a.ns, this.In(), this[ub]({
				type: qg
			});
			else {
				var b = wp(),
					c = (b - a.startTime) / (a.ls - a.startTime);
				if (1 > c) {
					if (b - a.Kn < 1E3 / 30) return
				} else c = 1, a.Hn = k;
				c = a.ms.Ut(a.ks(c));
				c.z = n;
				a.Jn = c;
				a.Kn = b;
				this.zg.drawChart(c, {})
			}
		};
		V.tk = function() {
			this.kd.yk.cc();
			this.kd = l
		};

		function cy(a) {
			a = dy(a);
			return eval(de + a + fe)
		}

		function ey(a, b) {
			var a = b(a),
				c = gp(a);
			if (c == il || c == Fg) {
				var c = c == Fg ? [] : {},
					d;
				for (d in a) {
					var e = ey(a[d], b);
					hp(e) && (c[d] = e)
				}
			} else c = a;
			return c
		}

		function dy(a) {
			return a[bb](/"(Date\([\d,\s]*\))"/g, function(a, c) {
				return cl + c
			})
		}

		function fy(a) {
			lp(a) && (a = 0 !== a.getMilliseconds() ? [a[Lc](), a.getMonth(), a.getDate(), a.getHours(), a
				.getMinutes(), a.getSeconds(), a.getMilliseconds()
			] : 0 !== a.getSeconds() || 0 !== a.getMinutes() || 0 !== a.getHours() ? [a[Lc](), a
				.getMonth(), a.getDate(), a.getHours(), a.getMinutes(), a.getSeconds()
			] : [a[Lc](), a.getMonth(), a.getDate()], a = xf + a[cd](ie) + fe);
			return a
		};

		function gy(a) {
			this.Hx = hy++;
			this.ip = this.Hi = U;
			this.ub = Gj;
			this.To = l;
			mp(a) && 0 < a[cb] || h(r("Container is not defined"));
			this.wb = a;
			this.Vu = Wt(this, a);
			this.ul = n;
			this.qa = l
		}
		var hy = 0;
		V = gy[K];
		V.Fu = function() {
			if (!this.qa) this.qa = new by(this.wb, Z(this.up, this), Z(this.Mv, this)), Qr(this.qa, qg, Z(
					this.Kv, this)), Qr(this.qa, tm, Z(this.Ov, this)), Qr(this.qa, Rh, Z(this.Lv, this)),
				Qr(this.qa, ml, Z(this.Ap, this, k)), Qr(this.qa, ll, Z(this.Ap, this, n)), Qr(this.qa, cm,
					Z(this.Nv, this))
		};
		V.setChartType = function(a, b, c, d) {
			this.Hi = a;
			if (W(b)) this.ip = b;
			if (W(c)) this.ub = c;
			if (W(d)) this.To = d
		};
		V.up = function(a, b) {
			var c;
			var d = this.Vu;
			try {
				c = a[N](b)
			} catch (e) {
				d.addError(e.message)
			}
			return c
		};
		V.draw = function(a, b, c) {
			this.up(function() {
				this.Xk(a, b, c)
			}, this)
		};
		V.Xk = function(a, b, c) {
			b = b || {};
			b = ey(b, fy);
			b = (new cs(ba)).Gu(b);
			bs(b);
			b = cy(b);
			this.Fu();
			this.Hu(b);
			this.Iu(b);
			Ca(b, b[Qb] || this.ub);
			b.theme = b.theme || this.To;
			if (this.Hi != U) {
				var d = b;
				d.hAxis = d.hAxis || {};
				d.vAxis = d.vAxis || {};
				var e = d.hAxis,
					f = d.vAxis,
					g = l;
				switch (d[F]) {
					case rm:
						g = f;
						break;
					case T:
						d.targetAxis = d.targetAxis || {}, g = d.targetAxis
				}
				g && (iy(d, Pk, g, Rk), iy(d, Kk, g, Mk), iy(d, Gk, g, Gk));
				e && (iy(d, Hk, e, Gk), iy(d, Sn, e, Nn));
				f && iy(d, Tn, f, Nn);
				d.smoothLine && !hp(d.curveType) && (d.curveType = T);
				iy(d, Bk, d, Ck);
				iy(d, em, d, fm)
			}
			d =
				b;
			jy(d, On, Pn, Rn);
			jy(d, yk, wk, zk);
			ky(d.hAxis);
			for (var i in d.hAxes) ky(d.hAxes[i]);
			ky(d.vAxis);
			for (i in d.vAxes) ky(d.vAxes[i]);
			i = d.tooltip;
			if (!W(i)) i = {}, d.tooltip = i;
			jy(d, fo, ao, go);
			iy(d, go, i, Hn);
			iy(d, eo, i, An);
			iy(d, ho, i, no);
			i = d.legend;
			if (W(i)) {
				if (typeof i == pn) e = i, i = {}, d.legend = i, Ia(i, e)
			} else i = {}, d.legend = i;
			iy(d, zk, i, Hn);
			i = d.animation;
			if (W(i)) {
				if (typeof i == gl) e = 1E3 * i, i = {}, d.animation = i, i.duration = e
			} else i = {}, d.animation = i;
			iy(d, pg, i, Ji);
			google[wc][Yc][Ic](this.wb);
			a || h(r("Data table is not defined"));
			this.Eu =
				(i = a[Fb](0) != gl) ? 1 : 0;
			this.Ex = a[dc]();
			if (this.Hi == Dl)
				if (i && 1 == a[mb]()) a = google[wc][A].group(a, [0], [{
					column: 0,
					aggregation: google[wc][A].count,
					type: gl
				}]), this.ul = k;
				else if (b.aggregate && i) a = google[wc][A].group(a, [0], [{
				column: this.Eu,
				aggregation: google[wc][A].sum,
				type: gl
			}]), this.ul = k;
			this.qa[Kc](a, b, c)
		};
		V.Ap = function(a, b) {
			google[wc][eb][Xa](this, a ? ml : ll, {
				row: b.row,
				column: b.column
			})
		};
		V.Mv = function() {
			google[wc][eb][Xa](this, Yl, l)
		};
		V.Kv = function() {
			google[wc][eb][Xa](this, qg, l)
		};
		V.Ov = function() {
			google[wc][eb][Xa](this, tm, l)
		};
		V.Lv = function(a) {
			google[wc][eb][Xa](this, Rh, {
				entityName: a.entityName
			})
		};
		V.Nv = function(a) {
			google[wc][eb][Xa](this, cm, {
				index: a[ic]
			})
		};
		V.getSelection = function() {
			return this.ul ? l : this.qa[lc]()
		};
		V.setSelection = function(a) {
			this.qa[Nb](a)
		};
		V.Hu = function(a) {
			switch (a[F]) {
				case Ak:
					this[jc](T, Ak, Gj);
					Aa(a, l);
					break;
				case Cg:
					this[jc](T, Cg, Gj);
					Aa(a, l);
					break;
				case gi:
					this[jc](T, Pg, Gj);
					Aa(a, l);
					break;
				case Pg:
					this[jc](T, Pg, Ko);
					Aa(a, l);
					break;
				case rm:
					this[jc](rm);
					Aa(a, l);
					break;
				case Dl:
					this[jc](Dl), Aa(a, l)
			}
			var b = this.Hi;
			b == U && (b = l);
			var c = a[F] || U;
			c == U && (c = l);
			!b && !c && h(r("Unspecified chart type."));
			b && c && b != c && h(r("Incompatible chart types."));
			Aa(a, b || c)
		};
		V.Iu = function(a) {
			if (a[F] == T) {
				var b = this.ip;
				b == U && (b = l);
				var c = a.seriesType || U;
				c == U && (c = l);
				b && c && b != c && h(r("Incompatible default series types."));
				a.seriesType = b || c
			}
		};

		function ky(a) {
			if (W(a)) {
				jy(a, Dn, Fn, Hn);
				jy(a, On, Pn, Rn);
				a.gridlines = a.gridlines || {};
				var b = a.gridlines,
					c = a.numberOfSections;
				!hp(b.count) && hp(c) && typeof c == gl && (b.count = c + 1);
				a = a.gridlineColor;
				!hp(b[tb]) && hp(a) && va(b, a)
			}
		}

		function jy(a, b, c, d) {
			a[d] = a[d] || {};
			d = a[d];
			iy(a, b, d, Yh);
			iy(a, c, d, dj)
		}

		function iy(a, b, c, d) {
			hp(a[b]) && !hp(c[d]) && (c[d] = a[b])
		}
		V.clearChart = function() {
			this.qa.clearChart()
		};
		V.ox = function() {
			var a = this.qa.zg.Og();
			return a.Qp ? a.Qp() : S
		};
		V.Zk = function() {
			return this.qa.Zk()
		};
		V.Gg = function() {
			return this.qa.Gg()
		};

		function ly(a) {
			gy[N](this, a);
			this[jc](T, Cg, Gj)
		}
		xp(ly, gy);

		function my(a) {
			gy[N](this, a);
			this[jc](T, hn, Gj)
		}
		xp(my, gy);

		function ny(a) {
			gy[N](this, a);
			this[jc](T, U, Gj, bn)
		}
		xp(ny, gy);

		function oy(a) {
			gy[N](this, a);
			this[jc](T, Ak, Gj)
		}
		xp(oy, gy);

		function py(a) {
			gy[N](this, a);
			this[jc](rm)
		}
		xp(py, gy);

		function uy(a) {
			gy[N](this, a);
			this[jc](oh)
		}
		xp(uy, gy);

		function vy(a) {
			gy[N](this, a);
			this[jc](T, Pg, Ko)
		}
		xp(vy, gy);

		function wy(a) {
			gy[N](this, a);
			this[jc](T, wh, Gj)
		}
		xp(wy, gy);

		function xy(a) {
			gy[N](this, a);
			this[jc](T, Pg, Gj)
		}
		xp(xy, gy);

		function yy(a) {
			gy[N](this, a);
			this[jc](T, U, Gj)
		}
		xp(yy, gy);

		function zy(a) {
			gy[N](this, a);
			this[jc](Dl)
		}
		xp(zy, gy);

		function Ay(a) {
			this.ed = {};
			this.Ck = this.ki = this.Nb = this.l = this.qa = l;
			this.wb = a;
			this.Ek = 50;
			this.ni = 1;
			this.ii = n;
			this.Zb = {
				Na: {
					start: l,
					end: l
				},
				Lk: l,
				vb: l
			};
			this.Sd = l
		}
		xp(Ay, Rs);
		var By = {
				Hv: fn,
				dy: Ni,
				vp: ih,
				Gv: dm
			},
			Cy = {
				nn: "rangeSelectorStartHandle",
				mn: "rangeSelectorEndHandle",
				pn: "rangeSelectorStartScreen",
				on: "rangeSelectorEndScreen"
			},
			Dy = {
				oy: Hf,
				Nx: qf,
				Yx: vf,
				Hy: Tf
			},
			Ey = {
				chartArea: {
					top: Ae,
					height: Ke
				},
				enableInteractivity: n,
				legend: {
					position: U
				},
				hAxis: {
					textPosition: Pj
				},
				vAxis: {
					textPosition: U,
					gridlines: {
						color: U
					}
				}
			},
			Fy = {
				qn: {
					b: new wt({
						stroke: "#000",
						fill: Sd
					}),
					Bg: new lq(11, 18),
					Dn: 3
				},
				Cn: new wt({
					fill: Hd,
					rb: 0.5
				}),
				Bn: new wt({
					fill: "#000",
					rb: 0
				})
			};
		V = Ay[K];
		V.draw = function(a, b, c) {
			this.ed = {};
			var c = c || {},
				b = new Nt([b || {}]),
				d = mu(b.fi(Mh));
			d.theme = Ey;
			if (!W(this.ki)) this.ki = new Zx(Z(this.ji, this, k));
			if (!W(this.Dx)) this.Ck = new Zx(Z(this.Sk, this, k));
			this.Ek = b.be(Wl, 50);
			this.ii = b.za(Zm, this.ii);
			switch (b.ia(Nh, Dy, vf)) {
				case Hf:
					this.qa = new oy(this.wb);
					break;
				case qf:
					this.qa = new ly(this.wb);
					break;
				case vf:
					this.qa = new yy(this.wb);
					break;
				case Tf:
					this.qa = new py(this.wb)
			}
			google[wc][eb].addListener(this.qa, Yl, Z(this.Xt, this, a, c, b.be(Qk)));
			this.qa[Kc](a, d)
		};
		V.wt = function(a, b) {
			for (var c = b[dc](), d = [], e = 0; e < c; e++) {
				var f = b[H](e, 0);
				W(f) && d[v](a.L.mc(f))
			}
			return d
		};
		V.xt = function(a, b) {
			if (0 >= b) this.ni = 1;
			var c = 0,
				c = a.L.jf(a.sb),
				d = l;
			lp(c) ? (d = new Date, d[Qc](c[Vb]() + b)) : d = c + b;
			c = s[db](s.abs(a.L.mc(d) - a.sb));
			c = s.max(c, 1);
			this.ni = c < s.abs(a.ob - a.sb) ? c : 1
		};
		V.Xt = function(a, b, c) {
			this.l = this.qa.Gg();
			var d = this.l.ta[0];
			if (W(d.L)) {
				this.xt(d, c);
				if (this.ii) this.Sd = this.wt(d, a);
				this.qa.Zk().Og(Z(this.Xk, this, b))
			}
		};
		V.Xk = function(a, b) {
			this.Nb = b;
			var c = a.range,
				d = mp(c) ? c[O] : ba,
				c = mp(c) ? c.end : ba,
				e = this.wn(d, c);
			this.Zb.Na = e;
			c = b.ja(n);
			b[t](l, c);
			var f = Fy.qn,
				g = this.l;
			b.Wa(0, 0, g[w], g[Q], Fy.Bn, c);
			var d = b.Wa(g.a[C], g.a.top, g.a[w], g.a[Q], Fy.Bn, c),
				i = b.Wa(g.a[C], g.a.top, e[O] - g.a[C], g.a[Q], Fy.Cn, c);
			this.ed[Cy.pn] = i;
			i = b.Wa(e.end, g.a.top, g.a[w] + g.a[C] - e.end, g.a[Q], Fy.Cn, c);
			this.ed[Cy.on] = i;
			i = this.An(e[O], g.a.top, g.a[Q], f.Bg[w], f.Bg[Q], f.Dn, b, f.b, c);
			this.ed[Cy.nn] = i;
			e = this.An(e.end, g.a.top, g.a[Q], f.Bg[w], f.Bg[Q], f.Dn, b, f.b, c);
			this.ed[Cy.mn] = e;
			c = c.q();
			Qr(c, Vk, Z(this.gs, this));
			Qr(c, Wk, Z(this.Jg, this, {
				type: sm,
				Ig: n
			}));
			Qr(c, Yk, Z(this.sk, this));
			this.zn(i, fn, fn);
			this.zn(e, Ni, Ni);
			Qr(d, Uk, Z(this.xn, this, {
				vb: ih
			}));
			Qr(d, Xk, Z(this.Jg, this, {
				type: sm,
				Ig: k
			}));
			Qr(d, Wk, Z(this.Jg, this, {
				type: sm,
				Ig: n
			}));
			google[wc][eb][Xa](this, Yl, l)
		};
		V.zn = function(a, b, c) {
			Qr(a, Uk, Z(this.xn, this, {
				vb: c
			}));
			Qr(a, Xk, Z(this.Jg, this, {
				type: b,
				Ig: k
			}));
			Qr(a, Wk, Z(this.Jg, this, {
				type: b,
				Ig: n
			}));
			Qr(a, Yk, Z(this.sk, this))
		};
		V.An = function(a, b, c, d, e, f, g, i, j) {
			var m = s[B](0.5 * d),
				o = g.ja(n);
			g[t](j, o);
			g.Kg(o.q(), a - m, b);
			this.Qu(m, 0, c, g, i, o);
			this.Ru(0, 0.5 * (c - e), d, e, f, g, i, o);
			return o.q()
		};
		V.Qu = function(a, b, c, d, e, f) {
			a = Ft([{
				x: a,
				y: b
			}, {
				x: a,
				y: b + c
			}]);
			d.xa(a, e, f)
		};
		V.Ru = function(a, b, c, d, e, f, g, i) {
			var c = a + c,
				d = b + d,
				j = Ft([{
					x: a + e,
					y: b
				}, {
					x: c - e,
					y: b
				}, {
					x: c,
					y: b + e
				}, {
					x: c,
					y: d - e
				}, {
					x: c - e,
					y: d
				}, {
					x: a + e,
					y: d
				}, {
					x: a,
					y: d - e
				}, {
					x: a,
					y: b + e
				}], n);
			f.xa(j, g, i);
			e += 1;
			a = Ft([{
				x: a + e,
				y: b + e
			}, {
				x: a + e,
				y: d - e
			}]);
			f.xa(a, g, i);
			b = Ft([{
				x: c - e,
				y: b + e
			}, {
				x: c - e,
				y: d - e
			}]);
			f.xa(b, g, i)
		};
		V.wn = function(a, b) {
			var c = this.l.ta[0],
				d = c.L.jf(c.sb),
				e = c.L.jf(c.ob),
				f = W(a) ? a : d,
				g = W(b) ? b : e,
				d = c.L.sg(d),
				e = c.L.sg(e),
				i = c.L.sg(f),
				j = c.L.sg(g);
			return d <= i && i <= j && j <= e ? {
				start: c.L.mc(f),
				end: c.L.mc(g)
			} : {
				start: c.sb,
				end: c.ob
			}
		};
		V.getRange = function() {
			var a = this.l.ta[0],
				b = this.Zb.Na;
			return {
				start: a.L.jf(b[O]),
				end: a.L.jf(b.end)
			}
		};
		V.setRange = function(a, b) {
			var c = this.Zb.Na;
			if (!W(c[O]) || !W(c.end)) return n;
			c = this.wn(a, b);
			return this.mp(c[O], c.end)
		};
		V.mp = function(a, b) {
			var c = this.Zb.Na;
			if (c[O] == a && c.end == b) return n;
			this.Zb.Na = {
				start: a,
				end: b
			};
			this.Zb.vb = dm;
			this.Cp();
			return k
		};
		V.Cp = function() {
			var a = this.l.ta[0],
				b = a.sb,
				a = a.ob,
				c = this.Zb;
			if (c.vb == dm) c.vb = l;
			var d = 0,
				e = s[B](0.5 * Fy.qn.Bg[w]);
			c.vb != Ni && (d = s.min(c.Na[O], c.Na.end), d >= b && (this.Nb.Kg(this.ed[Cy.nn], d - e, 0),
				this.Nb.Qk(this.ed[Cy.pn], d - b)));
			c.vb != fn && (d = s.max(c.Na[O], c.Na.end), b = this.ed[Cy.on], c = this.ed[Cy.mn], a >= d && (
				this.Nb.Qk(b, a - d), this.Nb.no(b, d), this.Nb.Kg(c, d - e, 0)))
		};
		V.gs = function(a) {
			var b = this.Zb;
			if (W(b.vb)) {
				Ja(a[Ec][zc], Zk);
				var c = this.l.ta[0],
					d = c.sb,
					e = c.ob;
				if (!b.Na || !W(b.Na[O]) || !W(b.Na.end)) b.Na = {
					start: d,
					end: e
				};
				c = a[Wb];
				d = this.gt(d, e, c - b.Lk);
				b.Lk = c;
				if (b.vb != Ni) b.Na.start = b.Na[O] + d;
				b.vb != fn && (b.Na.end += d);
				this.ki.Da(this.Ek);
				this.Ck.Da(this.Ek);
				a[ob]()
			}
		};
		V.gt = function(a, b, c) {
			var d = this.Zb.Na,
				e = this.Zb.vb;
			e == By.vp || e == By.Gv ? (a -= d[O], b -= d.end) : e == By.Hv ? (a -= d[O], b = d.end - d[O] -
				this.ni) : (a = d[O] - d.end + this.ni, b -= d.end);
			return pr(c, a, b)
		};
		V.xn = function(a, b) {
			if (b.lp()) {
				var c = this.Zb;
				c.Lk = b[Wb];
				c.vb = a.vb;
				b[ob]()
			}
		};
		V.sk = function(a) {
			if (a.lp()) {
				var b = this.Zb;
				W(b.vb) && W(b.Na) && (this.ii ? this.mp(this.sp(b.Na[O]), this.sp(b.Na.end)) && this.Sk(
					n) : this.Sk(n));
				b.vb = l;
				a[ob]()
			}
		};
		V.sp = function(a) {
			for (var b = this.Sd[I], c = 0; c < b - 1; c++)
				if (a <= this.Sd[c + 1] && a >= this.Sd[c]) return a - this.Sd[c] < this.Sd[c + 1] - a ?
					this.Sd[c] : this.Sd[c + 1];
			return a
		};
		V.Jg = function(a, b) {
			this.Zb.vb ? this.Xv(b[Wb], b[Xb]) || this.sk(b) : Ja(b[Ec][zc], a.Ig ? a[F] == sm ? Zk : Xh :
				yi)
		};
		V.Xv = function(a, b) {
			var c = this.l.a;
			return a > c[C] && a < c[C] + c[w] && b > c.top && b < c.top + c[Q]
		};
		V.ji = function() {
			this.Cp()
		};
		V.Sk = function(a) {
			var b = this.getRange();
			W(b) && google[wc][eb][Xa](this, Xl, {
				start: b[O],
				end: b.end,
				inProgress: a
			})
		};
		V.Fp = function(a) {
			W(a) && a.cc()
		};
		V.clearChart = function() {
			this.Fp(this.ki);
			this.Fp(this.Ck);
			this.qa.clearChart();
			this.Nb = l;
			Xr(this)
		};
		ca("google.visualization.CoreChart", gy);
		la(gy[K], Hi, gy[K][Kc]);
		la(gy[K], pj, gy[K][lc]);
		la(gy[K], Fm, gy[K][Nb]);
		la(gy[K], "dump", gy[K].ox);
		la(gy[K], "clearChart", gy[K].clearChart);
		ca("google.visualization.AreaChart", ly);
		la(ly[K], Hi, ly[K][Kc]);
		la(ly[K], pj, ly[K][lc]);
		la(ly[K], Fm, ly[K][Nb]);
		ca("google.visualization.BarChart", vy);
		la(vy[K], Hi, vy[K][Kc]);
		la(vy[K], pj, vy[K][lc]);
		la(vy[K], Fm, vy[K][Nb]);
		ca("google.visualization.BubbleChart", uy);
		la(uy[K], Hi, uy[K][Kc]);
		la(uy[K], pj, uy[K][lc]);
		la(uy[K], Fm, uy[K][Nb]);
		ca("google.visualization.CandlestickChart", wy);
		la(wy[K], Hi, wy[K][Kc]);
		la(wy[K], pj, wy[K][lc]);
		la(wy[K], Fm, wy[K][Nb]);
		ca("google.visualization.ColumnChart", xy);
		la(xy[K], Hi, xy[K][Kc]);
		la(xy[K], pj, xy[K][lc]);
		la(xy[K], Fm, xy[K][Nb]);
		ca("google.visualization.ComboChart", yy);
		la(yy[K], Hi, yy[K][Kc]);
		la(yy[K], pj, yy[K][lc]);
		la(yy[K], Fm, yy[K][Nb]);
		ca("google.visualization.LineChart", oy);
		la(oy[K], Hi, oy[K][Kc]);
		la(oy[K], pj, oy[K][lc]);
		la(oy[K], Fm, oy[K][Nb]);
		ca("google.visualization.PieChart", zy);
		la(zy[K], Hi, zy[K][Kc]);
		la(zy[K], pj, zy[K][lc]);
		la(zy[K], Fm, zy[K][Nb]);
		ca("google.visualization.ScatterChart", py);
		la(py[K], Hi, py[K][Kc]);
		la(py[K], pj, py[K][lc]);
		la(py[K], Fm, py[K][Nb]);
		ca("google.visualization.SparklineChart", ny);
		la(ny[K], Hi, ny[K][Kc]);
		la(ny[K], pj, ny[K][lc]);
		la(ny[K], Fm, ny[K][Nb]);
		ca("google.visualization.SteppedAreaChart", my);
		la(my[K], Hi, my[K][Kc]);
		la(my[K], pj, my[K][lc]);
		la(my[K], Fm, my[K][Nb]);
		ca("google.visualization.RangeSelector", Ay);
		la(Ay[K], Hi, Ay[K][Kc]);
		la(Ay[K], "getRange", Ay[K].getRange);
		la(Ay[K], "setRange", Ay[K].setRange);
	})();
	google.loader.loaded({
		"module": "visualization",
		"version": "1.0",
		"components": ["corechart", "default", "format"]
	});
	google.loader.eval.visualization = function() {
		eval(arguments[0]);
	};
	if (google.loader.eval.scripts && google.loader.eval.scripts['visualization']) {
		(function() {
			var scripts = google.loader.eval.scripts['visualization'];
			for (var i = 0; i < scripts.length; i++) {
				google.loader.eval.visualization(scripts[i]);
			}
		})();
		google.loader.eval.scripts['visualization'] = null;
	}
})();
